js 斐波那契數

2022-06-15 23:51:15 字數 1219 閱讀 5386

斐波那契數,指的是這樣乙個數列:1、1、2、3、5、8、13、21、……在數學上,斐波那契數列以如下被以遞迴的方法定義:f0=0,f1=1,fn=fn-1+fn-2(n>=2,n∈n*),用文字來說,就是斐波那契數列由 0 和 1 開始,之後的斐波那契數列係數就由之前的兩數相加。  

常用的計算斐波那契數列的方法分為兩大類:遞迴和迴圈。

**優美邏輯清晰。但是有重複計算的問題,如:當n為5的時候要計算fibonacci(4) + fibonacci(3),當n為4的要計算fibonacci(3) + fibonacci(2) ,這時fibonacci(3)就是重複計算了。執行 fibonacci(50) 會出現瀏覽器假死現象,畢竟遞迴需要堆疊,數字過大記憶體不夠。

function fibonacci(n) ;

return fibonacci(n - 2) + fibonacci(n - 1);

}fibonacci(30)

function fibonacci(n) 

return fib(n, 1, 1)

}fibonacci(30)

var fibonacci = function () 

return memo[n]

}return fib;

}()fibonacci(30)

var memoizer = function (func) 

return memo[n]

}};var fibonacci=memoizer(function(n);

return fibonacci(n - 2) + fibonacci(n - 1);

})fibonacci(30)

function fibonacci(n) 

return sum

}fibonacci(30)

var fibonacci = function (n) 

return n2

}fibonacci(30)

各種方法執行耗時如下圖:普通遞迴》改進遞迴》for迴圈

斐波那契數

入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...

斐波那契數

斐波那契數列 fibonacci sequence 簡介 斐波那契數列 fibonacci sequence 又稱 分割 數列 因 數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 ...

斐波那契數

遞迴演算法是不可取的。由於效率非常低,並且還有棧溢位的風險。應該使用例如以下的迭代解法 int fibonacci unsigned int n if n 1 int i 0,j 1,m unsigned int k for k 2 k n k return m 可是對於這題來說。上面的 還是不行的...