劍指Offer 斐波拉契數列

2021-09-21 01:42:22 字數 1053 閱讀 5027

題目描述

寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下: n=0,f(n)=0 ;n=1,f(n)=1 n>1;f(n)=f(n-1)+f(n-2).

解題思路

演算法**

從上圖中不難發現:在這棵樹中有很多結點是重複的,而且重複的結點數會隨著n的增大而急劇增加,這意味計算量會隨著n的增大而急劇增大。事實上,用遞迴方法計算的時間複雜度是以n的指數的方式遞增的。

/** * 寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下: n=0,f(n)=0 ;n=1,f(n)=1 n>1;f(n)=f(n-1)+f(n-2).

*/public

class

offer10

public

static

intlowfibonacci

(int n)

if(n ==1)

return

lowfibonacci

(n -1)

+lowfibonacci

(n -2)

;}/** * 效率高 減少重複計算

** @param n

* @return

*/public

static

inthfibonacci

(int n)

if(n ==1)

int one =0;

int two =1;

int fib =0;

for(

int i =

2; i <= n; i++

)return fib;

}}附錄

該題原始碼在我的 ?github 上面!

劍指Offer09 斐波拉契數列數列問題

斐波拉契數列問題 要求實現鍵盤輸入乙個數n,輸出斐波拉契數列的第n項。斐波拉契數列定義 f 0 0 f 1 1 f n f n 1 f n 2 按照斐波拉契地推公式很容易想到的方法就是採用遞迴來求解,但是遞迴方法存在很嚴重的效率問題 例如要求f 10 需要先求f 9 和f 8 同樣要求f 9 必須先...

劍指offer 斐波那契數列

題目1描述 寫乙個函式,輸入n,求斐波那契數列的第n項。斐波那契數列的定義如下 f n 0 n 0 f n 1 n 1 f n f n 1 f n 2 n 1 分析描述 在大多數的c語言教科書中,一般會用遞迴求斐波那契數列。如下 long long fibonacci unsigned int n ...

劍指offer 斐波那契數列

記錄來自 劍指offer 的演算法題。題目如下 寫乙個函式,輸入n,實現斐波那契數列的第n項。斐波那契數列的定義如下 f n 01 f n 1 f n 2 n 0 n 1n 1 教科書上通常在介紹遞迴的時候都會使用斐波那契數列作為例子,然後給出下列解法 long long fibonacci uns...