5 回答
TA贡献1719条经验 获得超6个赞
你的意思是这样的:
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
System.out.print(i+j+" ");
}
System.out.println("\n");
}
TA贡献1780条经验 获得超5个赞
作为一种闲置的好奇心,以下是如何使用一个变量来做到这一点。不要交出它 - 这不是你所要求的 - 但它很好地强调了 div 和 mod 的使用:
for (int i=0; i < 16; i++) Console.WriteLine(i/4 + i%4);
它本质上与我的其他答案相同,因为任何数字 A 都可以被认为是“较小的数字 B 乘以 C,加上 A 除以 C 的余数”的总和
用5的倍数表示,12就是2*5 + 12%5
因此,对于您需要打印的 16 个数字,i
可以通过x/4
(0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 的序列)提供可以由(0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3 的序列)j
提供x%4
TA贡献1828条经验 获得超3个赞
你自己尝试过,并且在寻求帮助之前确实解决了问题,这是一件好事。
您应该首先实现一个打印 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 的嵌套循环。
一旦你开始工作,我相信很容易改变它,所以它会打印 0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6。
TA贡献1820条经验 获得超2个赞
我们可以使用两个 for 循环来表达您的问题。外循环控制每个子序列的起始值,内循环控制要打印的子序列。
for (int i=0; i <= 3; ++i) {
for (int j=i; j <= i+3; ++j) {
if (j > i) System.out.print(" ");
System.out.print(j);
}
System.out.println();
}
这打印:
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
TA贡献1826条经验 获得超6个赞
仅使用两个变量意味着将两个变量相加:
i j
0 = 0+0
1 = 0+1
2 = 0+2
3 = 0+3
1 = 1+0
2 = 1+1
3 = 1+2
4 = 1+3
2 = 2+0
3 = 2+1
4 = 2+2
5 = 2+3
...
您现在能想到如何重新编写循环来生成这组步骤吗?
添加回答
举报