使用单个for循环在java中打印三角形

时间:2016-08-09 09:14:39

标签: java algorithm

1
2 3
4 5 6

我必须使用单个for循环打印三角形。

我尝试使用两个for循环,我成功完成但我必须使用单个for循环来解决它。

3 个答案:

答案 0 :(得分:1)

诀窍是当前行最后一个数字上一行最后一个数字数字的总和行

换句话说:lastNum = prevLastNumber + rowNum

int row = 1;
int last = 0;
for (int i = 1; i < 37; i++) {
    if (i < (row + last)) {
        System.out.print(i + " ");
    } else {
        System.out.print(i + "\n");
        row++;
        last = i;
    }
}

输出如下:

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36

答案 1 :(得分:0)

试试这个。

public class Pyramid7Floyds {
    public static void main(String[] args) {


           int nextNumber = 1;
           for (int i = 1; i <= 10; i++) {
                  for (int j = 1; j <= i; j++) {
                        System.out.print(nextNumber<10 ? ("  " + nextNumber++) : (" " + nextNumber++) );  //2spaces in single digit & 1 space in double digit.
                        //System.out.format("%3d",nextNumber++ ); //You may use this line for formatting as a replacement of above line. (comment above line before using this)
                  }
                  System.out.println();
           }


    }
}

答案 2 :(得分:0)

public class HelloWorld{

     public static void main(String []args){
        int j=1;
        for(int i=1;i<=6;i++){
            System.out.print(i+" ");
            if (i==j){
                System.out.print('\n');
                j=2*j+1;
            }
        }
     }
}