我的任务输出错误,无法解决

时间:2014-03-12 22:16:47

标签: java for-loop

您好,我有一项任务要做。输出应该是这样的:

{
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? 我不需要你给我这个任务的代码我需要你帮我做,告诉我哪里弄错了所以我自己做。谢谢:))

1 个答案:

答案 0 :(得分:8)

更改此行:

for(j=10-i;j<10;j++)

到此:

for(j=9-i;j<10;j++)

这是一个解释:

所以i0开始,对吧? i的最大值是多少? 9,因为在for(int i=0;i<10;i++)中,i无法访问10

让我们来看看它对for(j=10-i;j<10;j++)的影响。如果i9(最后一行),则j循环仅运行9次。 j将等于1234567,{ {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