面試題9 斐波那契數列

2021-07-02 21:48:30 字數 583 閱讀 7001

/*面試題9

題目:寫乙個函式,輸入n,求斐波那契數列的第n項。

很多教科書中的解法:

long long fibonacci_solution1(unsigned int n)

這是從第n項向前計算的方法,很多計算量實際上是重複的。

*/long long fibonacci_solution2(unsigned int n)//這是從第2項開始向第n項計算的方法,消除了很多重複計算

; if(n<2)

return result[n];

long long fibnminusone=1;

long long fibnminuszero=0;

long long fibn = 0;

for(unsigned int i=1;i!=n;++i)//原**使用i <= n,i可以從2開始迴圈,修改為i!=n後,i=2時是不迴圈的,因此將迴圈中修改為i=1為迴圈的起始條件

return fibn;

}/*測試用例包括:邊界值測試(0,1,2),功能測試(5,7,8等),效能測試(較大的數40,100等)*/

面試題9 斐波那契數列

方法一 很容易想到的解法是直接使用遞迴。c include stdafx.h include using namespace std long long fibonacci unsigned int n if n 1 return fibonacci n 1 fibonacci n 2 int tm...

面試題9 斐波那契數列

題目一 寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下 0 n 0 f n 1 n 1 f n 1 f n 2 n 1 遞迴 long long fibonacci unsigned int n if n 0 n 1 return n return fibonacci n 1 f...

面試題9 斐波那契數列

書中說遞迴法比迴圈法更慢,實測速度差不多一樣,不知道怎麼回事。很簡單,直接上 吧 coding utf 8 遞迴計算斐波那契數列 def fibonaccirecursion n if n 0 return false elif n 0 return 0 else fibonaccin fibona...