斐波那契數列

2021-07-04 07:22:52 字數 940 閱讀 1973

/*

---描述:

著名的斐波那契數列:從n>2開始,後面的每個數是前面兩個數之和,例如

1 1 2 3 5 8 13······

演算法思想:遞迴方式:通過數列找出遞推項,推出迴圈不不變式,通過觀察可以發現從n>2開始,後面的每個數的值是前面兩個數之和,因此遞推項為 f(n)=f(n-1)+f(n-2)

所以如果運用遞迴的方法來做,那麼是:想求f(n)那麼先求f(n-1)+f(n-2),而求f(n-1)就要求f(n-2)+f(n-3),同樣f(n-2)也是,那麼這樣向後推,遞迴。遞迴的終止條件是n>=2時,f(n)=1.

迴圈方式:通過遞推項,我們可以歸納出迴圈不變式,假如如果用a,b,c分別代替f(n-2),f(n-1),f(n)那麼這樣我們會發現迴圈不變式為( c=a+b,b=c,a=b )。

*/class  methodimpl

//遞迴演算法(每個月兔子的數量) n為當月兔子的數量,

public static int feibo(int n)

else

}//非遞迴演算法 n為從第三個月起,你所要輸出的月的個數

public static void feibona1(int n )

}/*迴圈演算法優化,觀察到其實遞推的迴圈式可以更加簡單,12

34 56

789a

bc=a+b

a=b+c

b=c+a

c=a+b

a=b+c

b+c+a

········

這樣,我們發現迴圈遞推式由(a b c=a+b a=b b=c c=a+b)變為(c=a+b a=b+c b=c+a )

所以**

*///n為從第三個月起,你所要輸出的月的個數,又因為這個迴圈不變式是3個,所以實際輸出的應該是n*3個月的個數

public static void feibona2(int n )}}

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

斐波那契數列

1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...