斐波那契數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、55、……
數學上,斐波納契數列被以遞回的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),
首先由兔子繁殖為例引入,又稱兔子數列,在兔子繁殖中,實質問題是 今年生兔子數=去年生兔子數+新生兔子數 ,
1.遞回實作
除最后一個數外,每個數都被重復計算若干次,效率低,
int Fibon(int n){
if(n==1||n==2){
return 1;
}else{
return Fibon(n-1)+Fibon(n-2);
}
}
2.陣列實作(記憶化搜索)
比遞回快,效率一般,
int b[100]={0};
int Fibon(int n){
if(b[n]!=0){
return b[n];
}
if(n<3){
b[n]=1;
}else{
b[n]=Fibon(n-1)+Fibon(n-2);
}
return b[n];
}
其中,斐波那契數列按照 奇、奇、偶 的規律排列,
參考資料:
1.C語言斐波那契數列的四種實作方式—遞回,迭代,陣列,佇列
2.五種方法實作斐波那契數列->待學習
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49382.html
標籤:C
上一篇:【演算法】 藍橋杯 高精度加法
下一篇:列印沙漏
