1
該程序的目標是創建一個二維網格值。我們得到用戶輸入的元素總數(例如,n)。我們需要構建的n值的2D網格(這些值是連續的從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,則失敗。
你可以請建議一個更好的方法來構建網格?
感謝理查德JP勒岡,你的想法給了我一個方向。我現在正在跟你給的鏈接。同時,我複製了你在java中提供的代碼片斷,並由於下面的代碼而得到了算術異常:if(i> 1 &&(n%i === 0 || i%cols === 0))cols = 0對於i = 2或更多,i%cols給出例外。 –
Uhhhh我沒有看到你的「下線」:P –
另外,除非你是研究生水平的compsci或數學學生,否則我不建議梳理維基百科頁面上的素因子分解。我也不禁止你;我鼓勵你按照你的好奇心......但要警惕它可能沒有用處 - 如果你能解決問題,你可能在一夜之間富起來或在睡夢中被間諜謀殺:P –