Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        2年前关闭。
                                                                                            
                
        
我说的是打印这种图案

       1
      121
     12321
    1234321
   123454321
  12345654321
 1234567654321
123456787654321


使用多个for循环非常容易。但是我试图使用单个for循环来实现它,但是无法做到这一点。
可能吗?

my code:-

    StringBuilder sb = new StringBuilder();
    for (int i = 1; i <= 8; ++i) {
    System.out.println(sb.append(i)
    + new StringBuilder(sb).reverse().substring(1));


但是我真的很想知道如何在没有预定义函数的情况下使用它,例如reverse()等,这些函数本身会在其中使用循环。
只是一个简单的“ for”循环。

最佳答案

这是一种仅使用一个循环即可写出此模式的方法:

class RhombusNumbers{

    public static void main(String[] args){
        String left = "";
        int max = 8;
        for(int i = 1; i <= max; i++){
            System.out.println(left + i + new StringBuilder(left).reverse().toString());
            left+=i;
        }
    }

}


它会跟踪左数字并在每次添加一个新数字。

编辑:

由于StringBuilder.reverse()使用循环并且还会反转10,因此没有StringBuilder:

class RhombusNumbers{

    public static void main(String[] args){
        String left = "";
        String right = "";
        int max = 8;
        for(int i = 1; i <= max; i++){
            System.out.println(left + i + right);
            left+=i;
            right = i + right;
        }
    }

}

09-10 13:52
查看更多