该程序的目标是创建一个二维值网格。作为用户的输入,我们得到网格中存在的元素总数(例如,n)。我们需要构建一个包含 n 个值的二维网格(这些值从 0 开始是连续的,即 0,1,2,3,4,5,6..n)
For n=9,
0 1 2
3 4 5
6 7 8
For n=6,
Either,
0 1 2
3 4 5
or
0 1
2 3
4 5
以下是我到目前为止所管理的:
int rowlen = (sqrt(n))
int collen = (n/rowlen)
int no = 0;
for (int i = 0; i < rowlen-1) {
for (int j = 0; j < collen-1) {
System.out.print(no+"\t")
no++;
}
System.out.println()
}
上面的代码适用于完全平方数,也适用于“n”为偶数的少数其他情况。但是如果'n'是奇数并且对于'n'的少数其他偶数值,例如n = 10,它会失败。
您能否建议一种更好的构建网格的方法?