为什么递归的斐波纳契有效?

时间:2015-04-06 22:58:48

标签: recursion fibonacci

我正在查看以下代码:

function _fibonacci(n) {
   if (n < 2){
     return 1;
   }else{
     return _fibonacci(n-2) + _fibonacci(n-1);
   }
} 
console.log(_fibonacci(5))

我理解这是如何工作的,但我不明白为什么这样做。有人可以向我解释为什么这有效吗?

1 个答案:

答案 0 :(得分:2)

这很简单,位置0和1的斐波纳契答案都是1(序列看起来像1 1 2 3 5 8等......)所以当它进入函数时n为0或者1(对于n-2递归调用和n-1递归调用都会发生这种情况),结果为1.对于所有其他值,它只是不断添加数字。

(请注意,序列中前2个的值可以是0 1或1 1,具体取决于您对序列的定义。对于这个,显然假设前2个都是1。)< / p>