1.遞迴方法
//斐波那契數
#include
using
namespace
std;
int f[1000];
long
long fib(int n)
int main(int argc, char *argv)
2.自頂向下帶備忘的動態規劃法
//動態規劃法 自頂向下帶備忘
//斐波那契數
#include
using
namespace
std;
long
long f[1000];
long
long fib(int n)
}int main(int argc, char *argv)
3.自底向上動態規劃法
//動態規劃法 自底向上
//斐波那契數
#include
using
namespace
std;
long
long f[1000];
long
long fib(int n)
return f[n];
}int main(int argc, char *argv)
演算法 動態規劃法 斐波那契數列
動態規劃用於求解最優化子問題的,往往是高效的而準確的。這背後的邏輯,其實就是程式設計的最基本原理 不要讓程式做重複的事情。對於乙個複雜的問題,可以分解成若干個子問題來解決,這是分治法。每個分解的子問題,得到最優解,再通過乙個方式組合這些最優解,得到全域性最優解,這是貪心法。而其實分解的子問題,往往會...
斐波那契數 動態規劃法和分治法
這個學期開了一門叫演算法的課,為了今天的 複賽,這兩天研究了一下這門課。感覺演算法真的是太神奇了。就比如說今天學了動態規劃 小小的入門 用它實現了斐波那契數,和原來的用分治法的一比較,差距出來了。相差十幾幾萬倍 要算的數越大相差的倍數越多 下面是實現 include include using na...
動態規劃法(一)從斐波那契數列談起
動態規劃 dynamic programming 與分治方法相似,都是通過組合子問題的解來求解原問題。不同的是,分治方法通常將問題劃分為互不相交的子問題,遞迴地求解子問題,再講它們的解組合起來,求出原問題的解。而動態規劃應用於子問題重疊的情況,即不用的子問題具有公共的子子問題。在這種情況下,如果採用...