斐波那契數列的幾種方法JS實現

2021-10-05 04:58:37 字數 558 閱讀 6121

由斐波那契數列的定義:

f(0) = 0,   f(1) = 1

f(n) = f(n - 1) + f(n - 2), 其中 n > 1.

var

fib=

function

(n);

寫法簡單明瞭,但由於遞迴會在棧中儲存每一層遞迴的呼叫棧,十分耗費記憶體,容易引起棧溢位或超時等錯誤。

var

fib=

function

(n)return b

};

對1000000007求余是為了防止資料過大,儲存數字型別位數有限。

尾遞迴是在函式內部最後尾呼叫自身,尾呼叫是函式式程式設計的重要概念,因為最後一步呼叫自身但沒有引用到函式內部的變數,所以在呼叫棧中始終只存在乙個呼叫幀。

var

tailfib

=function

(n, a, b)

預先將所有結果計算好並儲存到表中,直接返回表內對應值。

斐波那契數列的幾種實現方法

定義 遞迴 includeusing namespace std int f int x int main coutconst int n 1100 int a n int f int x int main for int i 0 i 2 i for int j 0 j 2 j for int k ...

js實現斐波那契數列

輸入n,求fibonacci數列的第n項 function fibonacci n if n 0 if n 1 return fibonacci n 1 fibonacci n 2 這其實並不是很好的方法 比如求fibonacci 10 的時候,分解成了fibonacci 9 和fibonacci ...

js實現斐波那契數列

遞迴 斐波那契數列是這樣的乙個數列,1,1,2,3,5,8,即前兩項都是1,後面每一項都是其前面兩項的和。臨界值 小於2 都是1 公式 fbnq 3 fbnq 2 fbnq 1 fbnq 4 fbnq 3 fbnq 2 function fbnq mouth return fbnq mouth 1 ...