Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2014, 01:28
Новичок на форуме
Отправить личное сообщение для maximillian Посмотреть профиль Найти все сообщения от maximillian
 
Регистрация: 07.06.2014
Сообщений: 4

Работа рекурсии
Доброго времени суток всем! Кто-нибудь может пожалуйста на пальцах объяснить как работает этот код... Не могу понять принцип рекурсии ...
Заранее спасибо

function sumTo(n) {
2
  if (n == 1) return 1;
3
  return n + sumTo(n-1);
4
}
5
 
6
alert( sumTo(100) );
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2014, 01:45
Аспирант
Отправить личное сообщение для cyber_ua Посмотреть профиль Найти все сообщения от cyber_ua
 
Регистрация: 05.06.2014
Сообщений: 94

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) );
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2014, 09:10
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Дополню: то есть, функция сложит все числа от одного до n.
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2014, 15:38
Новичок на форуме
Отправить личное сообщение для maximillian Посмотреть профиль Найти все сообщения от maximillian
 
Регистрация: 07.06.2014
Сообщений: 4

cyber_ua,Erolast спасибо за информацию, как приеду домой, сяду и ещё раз постараюсь вникнуть
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2014, 15:44
Новичок на форуме
Отправить личное сообщение для maximillian Посмотреть профиль Найти все сообщения от maximillian
 
Регистрация: 07.06.2014
Сообщений: 4

P.s А как функция складует числа ? Куда она записывает промежуточный результат ? Можете пожалуйста пошагово объяснить Получается она сначала как бы раскручивается, а потом обратно скручивается ? Не пойму в каком месте она складует числа ...
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2014, 15:54
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от maximillian Посмотреть сообщение
P.s А как функция складует числа ? Куда она записывает промежуточный результат ? Можете пожалуйста пошагово объяснить Получается она сначала как бы раскручивается, а потом обратно скручивается ? Не пойму в каком месте она складует числа ...
да, скручивается\раскручивает я. эта самокрутка называется стек.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Front-end разработчик, работа удаленная или в офисе(Нижний Новгород), фуллтайм. VadimZharko Работа 8 29.04.2013 09:03
Javascript фронтенд разработчик(долгосрочная, удаленная работа) cpp Работа 11 16.09.2012 12:04
Работа рекурсии function Общие вопросы Javascript 7 26.01.2012 08:50
Программист JavaScript постоянная удалённая работа. moisha Работа 4 26.10.2011 19:52
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06