javascript - 为什么函数变量计算结果返回错误?

标签 javascript function variables math

我的代码准确性存在问题。
我做了一个函数来计算斐波那契数列:

  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/

相关文章:

javascript - 如何清除窗口哈希而不重新加载?

java - 是否有独立于语言的方法来向 JSR223 脚本绑定(bind)添加函数?

ios - 在另一个类中调用函数的最佳方式是什么? ( swift )

javascript - 如何在新函数中再次使用变量

java - 使用 JTextField 时无法在内部类错误中引用非最终变量

javascript - process.on 回调中引用错误

javascript - 转换 JavaScript 二维数组

JavaScript 打印预览

javascript - 构建 javascript 函数以接受默认值

c++ - 检查cpp文件中是否使用了变量