劍指offer7 斐波那契數列

2021-09-11 05:44:52 字數 778 閱讀 8607

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。

n<=39

首先貼乙個斐波那契數列的定義:

斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞推的方法定義:f(1)=1,f(2)=1, f(n)=f(n-1)+f(n-2)(n>=3,n∈n*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從2023年起出版了以《斐波納契數列季刊》為名的乙份數學雜誌,用於專門刊載這方面的研究成果。

所以寫成乙個遞迴的方法:

public class solution

else if(n==1||n==2)//特殊情況有三種0、1、2,都需要初始化賦值

else}}

通過閱讀劍指offer,知道這是一種效率比較低的寫法。。。與很多遞迴的題目一樣,會產生某個節點重複計算的問題,這裡嘗試用乙個陣列依次儲存0~n的值。

public class solution

int res = new int[n+1];

res[0]=0;

res[1]=1;

for(int i=2;i<=n;i++)

return res[n];}}

劍指offer 7 斐波那契數列

題目 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 思路 看到斐波那契數列就想有用遞迴的衝動,沒錯,剛開始我看了就往那個方向去想了,而且遞迴 只需要幾行就行了,if n 1 returnn elsereturnfibonacci n 1 fibonacci ...

劍指Offer (7)斐波那契數列

題目說明 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 實現如下 0 1 1 2 3 5 8 13 21.簡潔的遞迴,但是注意消除重複計算項,採用map儲存已計算的n的value class solution else return it second 若之...

《劍指Offer》7 斐波那契數列

題目 7.斐波那契數列 知識點 遞迴 動態規劃 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 解題思路 思路比較簡單,動態規劃和遞迴遞迴都可以實現,不做過多贅述。解法一 自研 int fibonacci int n 解法二 劍...