爬樓梯-簡單
動態規劃
題目:
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數。
思路:
整體採用一個迭代的思路,n階樓梯,由於達到最後一階樓梯之前有兩種可能,最後一步可能是1也可能是2。當最後一步是走的一個臺階那麼此時的方法總數是n-1階臺階的總方法數;當最後一步是兩個臺階時,此時的方法總數是n-2階臺階的總方法數;於是迭代的公式就出來了。
f(n)=f(n-1)+f(n-2)
這裏的f(n)代表的是n階臺階的方法總數。
int climbStairs(int n){
int b[100],i;
b[1]=1;
b[2]=2;
if(n>2)
{
for(i=3;i<=n;i++)
{
b[i]=b[i-1]+b[i-2];
}
}
return b[n];
}