
1.題目描述
大家都知道斐波那契數(shù)列,現(xiàn)在要求輸入一個(gè)整數(shù)n,請(qǐng)你輸出斐波那契數(shù)列的第n項(xiàng)(從0開始,第0項(xiàng)為0)。
n<=39.
2.算法分析
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波納契數(shù)列以如下被以遞推的方法定義:F(1)=1,F(xiàn)(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。
該算法可以通過兩種方式解決,一種是常規(guī)的規(guī)律法,另一種是遞歸算法。
3.代碼實(shí)例
常規(guī)算法
public static int Fibo(int n) {
if (n < 1)
return 1;
int n1 = 1;
int n2 = 1;
int result = 0;
for (int i = 2; i <= n; i++){
result = n1 + n2;
n1 = n2;
n2 = result;
}
return result;
}
遞歸算法
public static int Fibo(int n) {
if (n <= 1) {
return 1;
}else {
return Fibo2(n - 1) + Fibo2(n - 2);
}
}