題目:7. 斐波那契數列
知識點:遞迴、動態規劃
題目描述:
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
n<=39
解題思路:
思路比較簡單,動態規劃和遞迴遞迴都可以實現,不做過多贅述。
**:
//解法一(自研):
int fibonacci(int n)
//解法二(劍指offer 遞迴實現):
long long fibonacci_solution1(unsigned int n)
//解法三(劍指offer 迴圈實現):
long long fibonacci_solution2(unsigned n)
; if(n < 2)
return result[n];
long long fibnminusone = 1;
long long fibnminustwo = 0;
long long fibn = 0;
for(unsigned int i = 2; i <= n; ++ i)
return fibn;
}//解法四 (劍指offer 基於矩陣乘法):
struct matrix2by2
long long m_00;
long long m_01;
long long m_10;
long long m_11;
};matrix2by2 matrixmultiply
( const matrix2by2& matrix1,
const matrix2by2& matrix2
)matrix2by2 matrixpower(unsigned int n)
else if(n % 2 == 0)
else if(n % 2 == 1)
return matrix;
}long long fibonacci_solution3(unsigned int n)
; if(n < 2)
return result[n];
matrix2by2 powernminus2 = matrixpower(n - 1);
return powernminus2.m_00;
}
劍指offer 7 斐波那契數列
題目 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 思路 看到斐波那契數列就想有用遞迴的衝動,沒錯,剛開始我看了就往那個方向去想了,而且遞迴 只需要幾行就行了,if n 1 returnn elsereturnfibonacci n 1 fibonacci ...
劍指Offer (7)斐波那契數列
題目說明 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 實現如下 0 1 1 2 3 5 8 13 21.簡潔的遞迴,但是注意消除重複計算項,採用map儲存已計算的n的value class solution else return it second 若之...
劍指offer7 斐波那契數列
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 首先貼乙個斐波那契數列的定義 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入...