《劍指offer》------斐波拉契數列
阿新 • • 發佈:2018-05-01
ace stream names fibonacci inf ++ ios com 斐波拉契
題目一:求斐波拉契數列的第n項。
寫出一個函數,輸入n,求斐波拉契(Fibonacci)數列的第n項。斐波拉契數列定義如下:
C++實現:
//斐波拉契數列 #include <iostream> using namespace std; //遞歸實現 long long Fibonacci1(unsigned int n){ if(n<=1){ return n; } return Fibonacci1(n-1)+Fibonacci1(n-2); } //非遞歸實現 long long Fibonacci2(unsigned int n){ if(n<=1){ return n; } int f1 = 0,f2 = 1,sum; for(int i=2;i<=n;i++){ sum = f1 + f2; f1 = f2; f2 = sum; } return sum; } int main() { //測試數據 for(int i=0;i<=20;i++){ cout<<Fibonacci1(i)<<" "; } cout<<endl; for(int i=0;i<=20;i++){ cout<<Fibonacci2(i)<<" "; } cout<<endl; return 0; }
結果如下:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
請按任意鍵繼續. . .
《劍指offer》------斐波拉契數列