Репликация Fibonacci Beanstalk javascript

Может кто-нибудь объяснить, как работает этот код? Это код в рекурсии js из кодовой академии. Код определяет скорость роста с использованием последовательности Фибоначчи. Вывод кода

var height = growBeanstalk(5) // 5
var height = growBeanstalk(8) // 21 etc. 
(4) => //3 (3) => //2

Заранее спасибо!

function growBeanstalk(years) {
// Base case
if (years <= 2) {
  return 1;
}   
// Recursive case
return growBeanstalk(years - 1)+ growBeanstalk(years - 2);  
}

// Set the height of the beanstalk using your function
var height = growBeanstalk();

console.log(height);

javascript,recursion,fibonacci,

-1

Ответов: 1


0

В принципе, когда вы вызываете 4это, конечно, выполните эту функцию, сначала она проверит, является ли число 2 или меньше, и это то, что называется «базовым случаем», что будет в случае завершения рекурсии.

Другая часть функции - сама рекурсия, в основном вызывает себя, вычитая 1 и 2, и, следовательно, убедитесь, что функция когда-нибудь закончится.

Это пример того, как функция вызывается, когда вы вызываете 4:

growBeanstalk(4) -> 3
    |----growBeanstalk(3) -> 2
       |---growBeanstalk(2) -> 1
       |---growBeanstalk(1) -> 1
    |----growBeanstalk(2) -> 1
JavaScript, рекурсия, Фибоначи,
Похожие вопросы