我正在查看以下代码:
function _fibonacci(n) {
if (n < 2){
return 1;
}else{
return _fibonacci(n-2) + _fibonacci(n-1);
}
}
console.log(_fibonacci(5))
我理解这是如何工作的,但我不明白为什么这样做。有人可以向我解释为什么这有效吗?
答案 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>