由於double型別的精度還不夠,所以程式算出來的結果會有誤差,如果把公式展開計算,得出的結果就是正確的。
完整的實現**如下:
view plain
#include "iostream"
#include "queue"
#include "cmath"
using
namespace std;
int fib1(int index) //遞迴實現
if(index==1 || index==2)
return 1;
return fib1(index-1)+fib1(index-2);
} int fib2(int index) //陣列實現
if(index<3)
int *a=new
int[index];
a[0]=a[1]=1;
for(int i=2;ia[i]=a[i-1]+a[i-2];
int m=a[index-1];
delete a; //釋放記憶體空間
return m;
} int fib3(int index) //借用vector實現
vector a(2,1); //建立乙個含有2個元素都為1的向量
a.reserve(3);
for(int i=2;i
return a.at(0);
}
int fib4(int index) //佇列實現
queueq;
q.push(1);
q.push(1);
for(int i=2;i
return q.back();
} int fib5(int n) //迭代實現
for(i=2;i
return c;
} int fib6(int n)
int main(void)
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 斐波那契數列的兩種實現
最先研究這個數列的人是義大利人斐波那契,leonardo fibonacci,他在描述兔子生長的數目時用上了這數列 每個月兔子的總對數,就是這樣乙個序列 1,1,2,3,5,8,13,21.這個序列從第三項開始,每一項都等於前兩項之和。在數學上,斐波那契數列是以遞迴的方法來定義 f 1 1 f 2 ...
實現斐波那契數列
方法 一 通過迭代器實現 class fibiterator object def init self,n self.n n 是使用current儲存當前數列中第幾個數 self.current 0 使用num1儲存數列中前乙個數,初始值為0 self.num1 0 使用num2儲存數列中後乙個數,...