/*
題目:有n級台階,乙個人每次上一級或者兩級,問有多少種走完n級台階的方法?
分析:由分析可知:
n階台階,只可能是從n-1或是n-2的台階上走上來的,台階n的階段依賴的是n-1和n-2的子階段,
所以狀態轉移方程為dp[n] = dp[n-1] + dp[n-2],屬於最簡單的動態規劃問題
*/#include
#define n 20 //台階數為20
using namespace std;
int dp[n]; //全域性陣列,存放決策表
int fun(int n) //返回台階數為n的走法
dp[n-1] = fun(n-1); //若不為1或2則進行遞迴計算
dp[n-2] = fun(n-2);
dp[n] = dp[n-1]+dp[n-2]; //狀態轉移方程
return dp[n];
}int main()
演算法 動態規劃 走台階問題
有一道經典題目 有一座高度是10級台階的樓梯,從下往上走,每跨一步只能向上1級或者2級台階,要求程式求出一共多少中走法.第一種方法 暴力的利用排列組合,寫乙個多層巢狀迴圈遍歷出所有的可能性,但是時間複雜度是指數級的.這裡就用到了動態規劃,當然也有遞迴的思想,我們假設你只差一步就到第10級台階,會出現...
動態規劃走樓梯
main.cpp 動態規劃走樓梯 created by liujan on 11 18 14.問題描述 乙個樓梯有20級,每次走1級或2級,從底走到 頂一共有多少種走法?分析 假設從底走到第n級的走法有f n 種,走到第n級 有兩個方法,乙個是從第 n 1 級走1步,另乙個是從第 n 2 級走2步,...
動態規劃走樓梯 乙個題目幫你入門動態規劃演算法
如果有一座高度是10級台階的樓梯,從下往上走,每跨一步只能向上1級或者2級台階。要求用程式來求出一共有多少種走法。如果每次走1級台階,一共走10步,這是其中一種走法。我們可以簡寫成 1,1,1,1,1,1,1,1,1,1。如果每次走2級台階,一共走5步,這是另一種走法。我們可以簡寫成 2,2,2,2...