2014-12-06 66 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