您好,我有一项任务要做。输出应该是这样的:
{
0
0 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81
}
我试着这样做:这是我的代码:
public class ContnueUzOznakoMojNacin
{
public static void main(String args[])
{
int k=0, v=0;
int j;
for(int i=0;i<10;i++)
{
for(j=10-i;j<10;j++)
{
System.out.print(v+" ");
v+=k;
}
System.out.println();
v=0;
k++;
}
}
}
我得到的输出是错误的,我不明白为什么。 这是:
{
0
0 2
0 3 6
0 4 8 12
0 5 10 15 20
0 6 12 18 24 30
0 7 14 21 28 35 42
0 8 16 24 32 40 48 56
0 9 18 27 36 45 54 63 72
}
当我按照这些循环并从我的程序中增加时,我找不到错误。
第一行是ok输出应为0; 但第二行,输出应为0 1;不是0 2? 我不需要你给我这个任务的代码我需要你帮我做,告诉我哪里弄错了所以我自己做。谢谢:))
答案 0 :(得分:8)
更改此行:
for(j=10-i;j<10;j++)
到此:
for(j=9-i;j<10;j++)
这是一个解释:
所以i
从0
开始,对吧? i
的最大值是多少? 9
,因为在for(int i=0;i<10;i++)
中,i
无法访问10
。
让我们来看看它对for(j=10-i;j<10;j++)
的影响。如果i
为9
(最后一行),则j
循环仅运行9
次。 j
将等于1
,2
,3
,4
,5
,6
,7
,{ {1}},8
。那只有9个循环。如果查看上三角形的底部,可以看到9
只有9个数字。
我们希望0 9 18 27 36 45 54 63 72
运行10次,正如您可以在正确的三角形基础上看到的那样:j
。我们如何做到这一点?我们通过将起始编号(0 9 18 27 36 45 54 63 72 81
)减一(等于j
),使i
在每个10-i
循环上再运行一次。这就是你到达的方式
9-i