動態規劃求解斐波拉契數列

2021-10-02 12:08:54 字數 1229 閱讀 4910

斐波拉契數列的求解相信大家都不陌生,最簡單的方法就是簡單遞迴,但事件複雜度為2的n次方。今天我將用動態規劃的方法,將事件複雜度降到n,空間複雜度降到1

原始方法:簡單遞迴,**如下

#include

#include

#include

#include

#define maxnum 30

using

namespace std;

intfibonacci

(int n)

intmain()

改進方法:動態規劃,**如下(所謂的動態規劃,簡單理解就是用一張表記錄原問題分解成的子問題的解的結果,如用簡單遞迴解斐波那契數列時,計算f(5)時,利用f(5)= f(4)+f(3),但計算 f(4)時又會用到 f(3),若能在計算 f(4)時將 f(3)的結果記錄下來,就能減少遞迴次數)

#include

#include

#include

#include

#define maxnum 50

using

namespace std;

int fb[maxnum]

;//記錄子問題的結果

intfibonacci

(int n)

}int

main()

#include

#include

#include

#include

#define maxnum 50

using

namespace std;

int fb[maxnum]=;

//記錄子問題的結果

intfibonacci

(int n)}}

intmain()

#include

#include

#include

#include

#define maxnum 50

using

namespace std;

intfibonacci

(int n)

return b;}}

intmain()

斐波拉契數列

斐波拉契數列 1 1 2 3 5 8 13 21 34.其中每乙個數字都是前兩個數字的和。遞迴計算 long fibonacci int n 非遞迴計算 long fibonacci int n return result 這個函式的遞迴實現使用了雙重遞迴 double recursion 函式對本...

斐波拉契數列

編寫彙編程序列印1 1000的斐波拉契數列 原始碼assume cs code,ss stack,ds data data segment fibo dw 0,1,64 dup 0 str db the fibo list is 0ah,0dh,data ends stack segment db ...

斐波拉契數列

斐波拉契數列 這個數列從第三項開始,每一項都等於前兩項之和。已知斐波拉契數列的前兩項都是1,我們定義求斐波拉契數列的第n項 n 50 的函式為fbnq,請補充完成對fbnq函式的定義。輸入格式 共一行,為乙個正整數。輸出格式 共一行,為乙個正整數。輸入樣例 7輸出樣例 13 斐波拉契數列 def f...