问题
假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1级或者 2级,那么你有多少种方法爬到楼梯的顶部?
public class ClimbSairs {
public static void main(String[] args) {
System.out.println("爬1个台阶有" + climb(1) + "种走法");
System.out.println("爬2个台阶有" + climb(2) + "种走法");
System.out.println("爬3个台阶有" + climb(3) + "种走法");
System.out.println("爬4个台阶有" + climb(4) + "种走法");
System.out.println("爬5个台阶有" + climb(5) + "种走法");
System.out.println("爬6个台阶有" + climb(6) + "种走法");
}
public static int climb(int n) {
switch (n) {
case 1:
return 1;
case 2:
return 2;
default:
return climb(n - 1) + climb(n - 2);
}
}
}
运行结果:
爬1个台阶有1种走法
爬2个台阶有2种走法
爬3个台阶有3种走法
爬4个台阶有5种走法
爬5个台阶有8种走法
爬6个台阶有13种走法