有一座高度是
10級台階的樓梯,從下往上走,每跨一步只能向上
1級或者
2級台階。要求用程式來求出一共有多少種走法。
如果每次走
1級,需要走
10步,結果可以表示成(
1,1,1,1,1,1,1,1,1,1
);如果每次走
2級,需要走
5步,結果可以表示成(
2,2,2,2,2,
);思考一下,你還能寫出幾種……
那麼,共有多少種走法呢?
方法一:遞迴搜尋
public class main
if( n == 2)
f(n-1);
f(n-2);
}public static void main(string args)
}
方法二:動態規劃
public class main
system.out.println(arr[n]);
}}
動態規劃之跳台階
先來分析下這個問題 當n 1時,這個很好理解,只能跨1步這一種了 當n 2時,因為你每次可以跨1步或2步,那就是走2步或走兩個1步 當n 3時,因為你可以跨1步或2步,那你在台階1或台階2都能行,那後面就要計算到台階1有多少種走法,到台階2有多少種走法,然後2著相加,依次逆推 當n 4時,那你在台階...
演算法 動態規劃 走台階問題
有一道經典題目 有一座高度是10級台階的樓梯,從下往上走,每跨一步只能向上1級或者2級台階,要求程式求出一共多少中走法.第一種方法 暴力的利用排列組合,寫乙個多層巢狀迴圈遍歷出所有的可能性,但是時間複雜度是指數級的.這裡就用到了動態規劃,當然也有遞迴的思想,我們假設你只差一步就到第10級台階,會出現...
動態規劃 青蛙跳台階問題
問題描述 青蛙可以一次跳乙個台階,也可以一次跳兩個台階,總共有10層台階,青蛙有多少種選擇 動態規劃 設第n層的最多選擇為stage n 根據題意,可得如下狀態轉移方程 stage n stage n 1 stage n 2 如果n 10,則上述的意思就是第十層的選擇等於第九層的選擇數 第八層的選擇...