【发布时间】:2016-12-06 19:51:06
【问题描述】:
有人能解释一下这段代码是如何工作的吗?它是来自 codeacademy 的递归 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);
【问题讨论】:
-
Stack Overflow 对使用斐波那契数列的递归有很多很好的解释;有几个是在 JavaScript 中的。对这个主题进行研究后,您有哪些困惑?
-
我很困惑,例如在 growBeanstalk(8) 给出 21 的情况下,我知道它是 8+13,但为什么以及声明在哪里?为什么直到 5 才返回 5、6=>8、7=>13。为什么 6 返回 8?
-
你没有做研究? Fibonacci sequence.
标签: javascript recursion fibonacci