思路:下面是斐波那契額數列的數學公式
利用上面的公式和矩陣快速冪可以在logn的時間複雜度內解決問題。
注:具體矩陣快速冪的思想是怎麼樣的,可以自己搜尋,網上資料很多。
這題當然可以暴力,然後將所有的結果存下來,畢竟只有70組資料,不過這樣未免!!!
code:
1//斐波那契額數列
23 #include 4 #include 5
using
namespace
std;
6const
int m = 2;7
const
int mod = 1000000007
;8 typedef long
long
ll;9
ll ans[m][m];
10ll tmp[m][m];
1112
//矩陣乘法
13void
matrixmul(ll mat1[m][m], ll mat2[m][m])
1424
}25 memcpy(mat1, mat3, sizeof
(mat3));26}
2728
//矩陣快速冪
29void matrixquickmod(int
n)3046}
4748
intmain()
4956
return0;
57 }
面試題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 斐波那契數列
面試題9 題目 寫乙個函式,輸入n,求斐波那契數列的第n項。很多教科書中的解法 long long fibonacci solution1 unsigned int n 這是從第n項向前計算的方法,很多計算量實際上是重複的。long long fibonacci solution2 unsigned...