JavaScript fibonacci-RangeError:when base(n==1)或(n==0),但if(n<;=)则不是。为什么?
这很好:JavaScript fibonacci-RangeError:when base(n==1)或(n==0),但if(n<;=)则不是。为什么?,javascript,Javascript,这很好: function fibonacci(n) { if (n <= 1) { return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } console.log('fibonacci ' + fibonacci(7)); 它应该适用于n==1 | n==0 function fibonacci(n) { if (n == 1 || n==0) { return n;
function fibonacci(n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
console.log('fibonacci ' + fibonacci(7));
它应该适用于
n==1 | n==0
function fibonacci(n) {
if (n == 1 || n==0) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
对于n==1
它不起作用
因为对于n=2,第二次调用将针对
n-2
,即0
,这是您没有处理的您需要同时检查n==1 | | n==0
,因为您使用两个值进行调用,n-1
和n-2
函数斐波那契(n){
如果(n==1 | | n==0){
返回n;
}否则{
返回斐波那契(n-1)+斐波那契(n-2);
}
}
log('fibonacci'+fibonacci(7))代码>好的,我明白了:)谢谢!我用两个数字进行调用。我做了一些研究,所以我想补充一下:“当递归函数(一个调用自身的函数)没有退出点时,会发生堆栈溢出。”来源:
function fibonacci(n) {
if (n == 1 || n==0) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}