六種方式實現斐波那契數列

2021-06-02 01:22:32 字數 1054 閱讀 5918

由於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儲存數列中後乙個數,...