動態規劃(一)斐波那契函式

2021-10-04 15:12:57 字數 989 閱讀 5366

遞推方程an = an-1 + an-2  

a0 = 0

a1 = 1

**:

int fibonacci(int n)else

}

問題:時間負複雜度太高有太多的重複計算,會導致時間複雜度為指數級

例如,求an時需要計算an-1 和an-2, 求an-1時需要計算an-2 和an-3。。。

解決,將重複計算用陣列dp儲存起來用的時候直接拿出來。

#include #include using namespace std;

int dp[1000]; //用來儲存重複的計算

int main()

cout << dp[n] << endl;

return 0;

}

名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名(盒內共有 n 塊巧克力,20 > n >0)。 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。 假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。 例如: 如果n=1,則名名第1天就吃掉它,共有1種方案; 如果n=2,則名名可以第1天吃1塊,第2天吃1塊,也可以第1天吃2塊,共有2種方案; 如果n=3,則名名第1天可以吃1塊,剩2塊,也可以第1天吃2塊剩1塊,所以名名共有2+1=3種方案; 如果n=4,則名名可以第1天吃1塊,剩3塊,也可以第1天吃2塊,剩2塊,共有3+2=5種方案。 現在給定n,請你寫程式求出名名吃巧克力的方案數目。

輸入只有1行,即整數n。
可能有多組測試資料,對於每組資料,

輸出只有1行,即名名吃巧克力的方案數。

示例1

4
5
#include #include using namespace std;

int main()

cout << step[n] << endl;

}return 0;

}

動態規劃一 斐波那契數列

題目 寫乙個函式,輸入n,求斐波那契 fibonacci 數列的第n項。斐波那契數列的定義如下 public long fib int n 以fib 5 為例 深色部分的fib 3 以及fib 2 會被重複計算,當n增大時,遞迴樹高度增加,會有更多的重複計算 因此這種遞迴方法的效率非常低 考慮到遞迴...

動態規劃 斐波那契數列

問 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 斐波那契數列簡單介紹 我的解法 注 從fibonacci n 1 fibonacci n 2 明顯看出使用的是遞迴,此題用遞迴兩三行 即可搞定。但是,若出題者準備著乙個超大的n,那麼很有...

python斐波那契數列動態規劃

斐波那契類似於1 1 2 3 5 8這樣的數列,當前項等於前兩項之和。根據這個規律就可以用遞迴來做,可是當數字很大的時候,遞迴耗時很長,因此可以採用動態規劃來做。動態規劃 deffeibonacci1 n array 0 1 while len array n 1 array 2 return ar...