我有一个10x10数组,我试图用嵌套循环填充它
int A[][] = new int [10][10];
到目前为止,我已经创造了这个-
C = 1;
for (i=0; i<=9; i++)
for (j=9-i; j>=7-i; j--)
if (j>=0) {
A[i][j] = C; C=C+1;
}
这是目前为止的结果。
但是我尝试用两个for循环来创建它,但无法管理它。
谢谢你的帮助!
2条答案
按热度按时间tcbh2hod1#
这应该可以做到:
像往常一样迭代从0到10的行,将列索引设置为9并减小它
在内部循环中,将范围设置为
i
到Math.max(i - beltWidth + 1, 0)
包容性(beltWidth
列中非零值的最大计数,在本例中为3)。输出
uklbhaso2#
这是我的版本。我从亚历克斯的回答中借用了漂亮的printf格式:)我只想提两件事:
我想如果把i和j叫做y和x,会更容易阅读
我似乎记得,如果需要性能,就需要沿着x轴遍历数组,因为这就是获取cpu缓存的方式(至少在理论上是这样)。这会使算法更复杂一些,但我猜在这种情况下,我们并不真正关心性能,所以在内环中有y就可以了:)
输出