Показать сообщение отдельно
  #1 (permalink)  
Старый 09.05.2012, 04:38
Новичок на форуме
Отправить личное сообщение для S.D.Maquis Посмотреть профиль Найти все сообщения от S.D.Maquis
 
Регистрация: 23.10.2011
Сообщений: 9

Рекурсия возвращается !
Всем привет !
вот моя первая тема.
Думал я разобрался, но сегодня изменил одно значение и у меня такой вопрос:

function pow1(x, n) {
	  return (n != 1) ? x*pow1(x, n-1) : x; 
	}
	alert( pow1(5, 3) ); // 125
	
	
	function pow2(x, n) {
	  return (n != 1) ? x*pow2(x, n-1) : n
	}
	alert( pow2(5, 3) ); // 25


Как интерпретатор переводит эту строку: x*pow1(x, n-1)
как я понимаю он делает это так:
5*(5, 3-1) и т.д. пока не дойдёт до n==1(то есть я думаю что там стоят скобки, но на самом деле так это?)

Но основываясь на этой логике бред получается какойто. Откуда например в pow2 выдаёт n=25 ?
с pow1 где в результате x = 125 ясно но и тут не доконца!.

Последний раз редактировалось S.D.Maquis, 09.05.2012 в 04:54.
Ответить с цитированием