劍指offer 七,八 ,斐波拉切數列,跳台階

2022-01-19 16:57:12 字數 542 閱讀 4565

題目描述

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。

大概所有同學c語言課程都敲過吧,那麼這裡我就不說那兩個簡單的方法,遞迴和迭代。

n的次方結合矩陣快速冪,時間複雜度是logn,快速冪的時間複雜度,比普通的迭代n的複雜度低,也解決了大數的問題(數列後面的數太大要考慮使用long long型別)

#include using namespace std;

const int maxn = 4;

struct mat

};mat operator * (const mat& c)

}str;

mat pow_mod(int k)

class solution

}};int main()

};

劍指Offer 斐波拉契數列

題目描述 寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下 n 0,f n 0 n 1,f n 1 n 1 f n f n 1 f n 2 解題思路 演算法 從上圖中不難發現 在這棵樹中有很多結點是重複的,而且重複的結點數會隨著n的增大而急劇增加,這意味計算量會隨著n的增大而急劇增...

劍指Offer09 斐波拉契數列數列問題

斐波拉契數列問題 要求實現鍵盤輸入乙個數n,輸出斐波拉契數列的第n項。斐波拉契數列定義 f 0 0 f 1 1 f n f n 1 f n 2 按照斐波拉契地推公式很容易想到的方法就是採用遞迴來求解,但是遞迴方法存在很嚴重的效率問題 例如要求f 10 需要先求f 9 和f 8 同樣要求f 9 必須先...

41 求斐波拉切數列

41 求斐波拉切數列 問題描述 斐波拉切數列a1,a2,an的定義如下 a1 1 a2 1 an an 1 an 2 n 2 求出第n項an的值。輸入說明 你的程式需要從標準輸入裝置 通常為鍵盤 中讀入多組測試資料。每組輸入資料由一行組成,其中只有乙個正整數n 0 n 20 兩組輸入資料間無空行。輸...