我的代码准确性存在问题。
我做了一个函数来计算斐波那契数列:
function fibonacciseries(max_number, p, n) {
if(p === undefined) { p = 0;}
if(n === undefined) { n = 1;}
if(n > max_number) { return 0; }
console.log(n);
return fibonacciseries(max_number, n, n + p)
}
fibonacciseries(3)
但是当我运行此代码时,console.log(n);
显示:
1
1
2
3
我认为结果应该是1 1 2
,所以我真的不明白为什么会发生这样的事情。运行 fibonacciseries(4)
和 fibonacciseries(5)
没问题,那么 fibonacciseries(3)
出了什么问题呢?我应该如何解决这个问题?
最佳答案
检查n>=max_number
而不是n>max_number
。尝试下面更新的代码
function fibonacciseries(max_number, p, n) {
if(p === undefined) { p = 0;}
if(n === undefined) { n = 1;}
if(n >= max_number) { return 0; }
console.log(n);
return fibonacciseries(max_number, n, n + p)
}
fibonacciseries(3)
关于javascript - 为什么函数变量计算结果返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50782292/