首页 > 解决方案 > 为什么函数变量返回错误的计算?

问题描述

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

  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)?我应该如何解决这个问题?

标签: javascriptfunctionvariablesmath

解决方案


检查n>=max_numbern>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)


推荐阅读