2014-12-06 2 views
0

Я пытаюсь придумать алгоритм для генерации вложенного массива последовательных чисел, используя только один цикл. Я считаю, что это должно быть решено каким-то образом использовать оператор остатка, но не может придумать общее решение. У кого-нибудь есть какие-либо предложения или подсказки?Использование только одного цикла для генерации вложенных массивов

вход: 4 выход: 1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4

+1

Почему бы просто не использовать вложенный цикл? Простой и понятный –

+0

Я думаю, что это скорее математическая проблема ... –

ответ

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

+0

@rfornal Я знаю, но это то, чего хотят OP ... –

+0

Спасибо @Ludovic –

Смежные вопросы