如何使用以下格式打印1到10第1行第2行2& 3第3行4,5& 6第4行7,8,9,10?

时间:2013-10-10 15:10:58

标签: java loops

我试过这样,

 for (int j = 1; j <= 4; j++) {
            for (int k = 1; k < 10; k++) {
                if (k <= j) {
                    System.out.print(k + " ");
                } else
                    break;
            }
            System.out.println();
        }

但它的打印方式如

1
1 2 
1 2 3  
1 2 3 4  

这个问题在我参加的一次采访中被问到,我的思绪正在寻找解决方案......我想不到..

4 个答案:

答案 0 :(得分:2)

之前初始化一个变量
int printed = 1;

并更改您的

System.out.print(k+" ");

System.out.print(printed+" ");
printed++;

答案 1 :(得分:1)

这样做:

   public static void main(String[] args)
    {

       int i, j, k;
       for (i = 1, j = 1; i < 11; j++)
       {
           for (k = 0; k < j; k++)
           {
               System.out.print(i++ + " ");
           }

           System.out.println();

       }
    }

答案 2 :(得分:0)

此代码将执行此操作:

int i, j, k;
for (i = 1, j = 1; i < 11; j++) {
    for (k = 0; k < j; k++)
        System.out.print(i++ + " ");
    System.out.print("\n");
}

基本上,我控制下一个要打印的数字,j控制你在当前行中打印的数字。 k只是j的计数器。

答案 3 :(得分:0)

你也可以尝试使用一些数学魔法(序列)。

for (int j = 1; j <= 4; j++) {
    for (int k=(int) (0.5*(Math.pow(j,2)-j+2));k<=(int) (0.5*j*(j+1));k++) {
         System.out.print(k + " ");
    }
    System.out.println();
}