Может кто-нибудь объяснить мне, почему окончательное значение возврата из следующей рекурсивной функции ПРАВИЛЬНО?Значение функции «возврат» JavaScript?
function(factorial) {
if (n == 0)
return 1;
return n * factorial (n -1);
}
Я понимаю рекурсию, но я не понимаю, почему возвращаемое значение является правильным результатом, а не только 1 .. Если изменить возвращение к 2, то это просто удваивает результат факториала , Поэтому кажется, что любое значение, которое я вкладываю в это выражение возврата, становится множителем для накопленного результата факториальной функции. Почему это так? Как сохраняется накопленный результат факториала? Все ответы оценены
Из вашего комментария кажется, что вы действительно не понимаете рекурсии. Подумайте очень сложно. Что произойдет, если вы введете '3'? (подсказка: он будет 'return 3 * 2 * 1', потому что это' return 3 * factorial (2) ', который является' return 3 * (2 * factorial (1)) ' – slebetman