計算第n個斐波那契數

2021-08-30 13:59:28 字數 731 閱讀 5146

n>1,f(n)=f(n-1)+f(n-2);

f(0)=0;

f(1)=1;

求第n個斐波那契數

利用已知的斐波那契數的遞推公式即可

public class fibonacci 

public static void main(stringagrs)

}

遞迴法求解過程中,可知存在重複求解相同的函式值的情況,導致效率低下。

故利用乙個陣列儲存函式值,利用空間換取時間

public class fibonacci1 

return f[n];

}public static void main(stringagrs)

}

又由於只是需要獲取第n個斐波那契數,而計算f(n)只需要f(n-1)和f(n-2)的值,可利用last以及nexttolast來儲存f(n-1)和f(n-2)的值,並不需要整個陣列來儲存所有的斐波那契數

getfib(int n )**可更改為:

public static int getfib(int n)

int last=1;

int nexttolast=1;

int answer=1;

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

return answer;

}

求出第N個斐波那契數

一 知識普及 神魔是斐波那契數列 斐波那契數列 fibonacci sequence 又稱 分割 數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數...

求第n個斐波那契數

斐波那契數指 1 1 2 3 5 8 13 21.前兩個數是1 1,從第3個數開始該數等於前兩個數之和。1.用遞迴的方法求第n個斐波那契數 但我們發現有問題,當就算第45個斐波那契數時,特別耗費時間,許久沒有結果。這是為什麼呢?我們發現fib函式在呼叫過程中有很多重複的計算,如當計算fib 35 時...

求第n個斐波那契數。(不考慮溢位)

較為粗暴的解法 斐波那契數列1 1 2 3 5 8 13 21 前兩個數之和等於第三個數 但是我們發現有問題 在使用 fib 這個函式的時候如果我們要計算第50個斐波那契數字的時候特別耗費時間。使用 factorial 函式求10000的階乘 不考慮結果的正確性 程式會崩潰。我們發現 fib 函式在...