面試題9 斐波那契數列

2022-05-06 00:54:14 字數 825 閱讀 5967

思路:下面是斐波那契額數列的數學公式

利用上面的公式和矩陣快速冪可以在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...