fibonacci數列C 語言多種實現

2021-06-07 13:42:34 字數 1478 閱讀 6653

作者****:

[email protected]

斐波納契數列

(fibonacci sequence),又稱

**分割

數列,指的是這樣乙個數列:

1、1、2、3、5、8、13、21、... ...

在數學上,斐波納契數列以如下被以遞迴的方法定義:f(0)=1, f(1)=1, f(n)=f(n-1)+f(n-2)(n>=2,n∈n*).

#include #include #include #include #include using namespace std;

/** fibonacci的遞迴函式解法

* 優點:**簡單,易於理解

* 缺點:fib引數引數比較大時,運算量很大

*/unsigned long long fib_recursive( unsigned int fib )

/** fibonacci的陣列解法

* 優點:**比較簡單,也比較容易理解

* 缺點:fib多大就new多大的記憶體

*/unsigned long long fib_array( unsigned int fib )

result = parray[loop-1];

delete parray;

} else if ( 2 == fib ) return 2;

else if ( 1 == fib ) return 1;

return result;}/*

* vector實現

*/unsigned long long fib_vector( unsigned int fib )

return resultvec[i-1];

} else if ( 2 == fib ) return 2;

else if ( 1 == fib ) return 1;

return 1;}/*

* queue實現

*/unsigned long long fib_queue( unsigned int fib )

return resultqueue.back();

} else if ( 2 == fib ) return 2;

else if ( 1 == fib ) return 1;

return 1;}/*

* 迭代實現

*/unsigned long long fib_iteration( unsigned int fib )

return 1;

}int main(int argc, char **argv)

#ifdef _win32

system("pause");

#endif

return 0;

}

vs2012執行結果:

Fibonacci數列C語言

fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入包含乙個整數n。輸出一行,包含乙個整數,表示fn除以10007的餘數。在本題中,答案是要求fn除以10007的餘數,因此我們只要能算出這個...

C語言求Fibonacci數列

方法一 普通法 include include unsigned long fibonacci unsigned n 列印fibonacci intmain void printf athank you for you using.return exit success unsigned long ...

fibonacci數列C 語言多種實現

作者 vision chen yeah.net 斐波納契數列 fibonacci sequence 又稱 分割 數列,指的是這樣乙個數列 1 1 2 3 5 8 13 21 在數學上,斐波納契數列以如下被以遞迴的方法定義 f 0 1,f 1 1,f n f n 1 f n 2 n 2,n n cpp...