亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在JavaScript中使用遞歸實現斐波那契數

如何在JavaScript中使用遞歸實現斐波那契數

一只名叫tom的貓 2021-04-09 13:10:41
我嘗試在JavaScript中玩遞歸。我為斐波那契數列編寫了一個函數。但是,僅當參數為0時才有效fib = (x)=>{    if (x == 0 || x ==1) {        return 1    } else {        return fib(x-1) + fib(x+1)    }}它為1返回1,但大于0的數字我得到錯誤,超出了最大調用堆棧大小
查看完整描述

2 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

這不是斐波那契數列。這是斐波那契數列:


fib = (x) => {

  if (x == 0 || x == 1) {

    return 1;

  } else {

    return fib(x - 1) + fib(x - 2);

  }

}


for (let i = 0; i < 10; i++) {

  console.log(fib(i));

}

當然,以最簡單的形式。如果超過10,您將體驗到計算機成倍的計算成本。


查看完整回答
反對 回復 2021-04-29
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

您需要倒數第二次迭代的值,而不需要前面的迭代。

也請在這里看看:斐波那契數。

const fib = x => {

    if (x === 0 || x === 1) {

        return 1;

    }

    return fib(x - 2) + fib(x - 1);

};


console.log(fib(7));


查看完整回答
反對 回復 2021-04-29
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號