2014-12-06 46 views
0

我想出一個算法來生成一個循環數的嵌套數組,只使用一個循環。我覺得應該使用餘數運算符來解決問題,但不能提供一個通用的解決方案。任何人有任何建議或提示?使用只有一個循環來生成嵌套數組

輸入:4 輸出:1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4

+1

爲什麼不直接使用嵌套循環?簡單易懂 – 2014-12-06 13:01:28

+0

我想這是更多的數學問題... – 2014-12-06 13:06:14

回答

3

你會使用模運算符(%),但是請注意,你應該從零和向上,並從取模的結果迴路也從零和起來,所以你必須添加一個它。

var input = 4; 
 

 
for (var i = 0; i < input * input; i++) { 
 
    var n = (i % input) + 1; 
 
    
 
    document.write(n + '<br>'); 
 

 
}

2

類似的東西應該做的訣竅:

int input = ... 
int i = 0; 

while(i<=(input*input)){ 
    int output = (i % input) + 1; 
    i++; 
} 
+0

這是非常優雅的,但我的下一個想法是,它不像一個嵌套數組那樣直觀。 – rfornal 2014-12-06 13:04:35

+0

@rfornal我知道,但這就是OP想要的... – 2014-12-06 13:05:19

+0

謝謝@盧多維奇 – 2014-12-06 13:09:15