Работа рекурсии
Доброго времени суток всем! Кто-нибудь может пожалуйста на пальцах объяснить как работает этот код... Не могу понять принцип рекурсии ...
Заранее спасибо :) function sumTo(n) { 2 if (n == 1) return 1; 3 return n + sumTo(n-1); 4 } 5 6 alert( sumTo(100) ); |
maximillian,
function sumTo(n) { 2 if (n == 1) return 1;// если n равно 1, вернуть 1 3 return n + sumTo(n-1); // при первом вызове в будет sumTo(100 - 1), после того как sumTo вызовет саму себя будет sumTo(99 - 1) и будет она вызывать у меньшеным на 1 числом, до тех пор пока оно не будет равно 1 4 } 5 6 alert( sumTo(100) ); |
Дополню: то есть, функция сложит все числа от одного до n.
|
cyber_ua,Erolast спасибо за информацию, как приеду домой, сяду и ещё раз постараюсь вникнуть :)
|
P.s А как функция складует числа ? Куда она записывает промежуточный результат ? Можете пожалуйста пошагово объяснить :) Получается она сначала как бы раскручивается, а потом обратно скручивается ? Не пойму в каком месте она складует числа ...
|
Цитата:
|
Часовой пояс GMT +3, время: 10:11. |