我试过这样,
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
这个问题在我参加的一次采访中被问到,我的思绪正在寻找解决方案......我想不到..
答案 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();
}