问题描述:
小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。
分析:
- 如果只有一级台阶,那么最后一步是左脚的话,方法一共是1种,就是直接迈左脚上一级台阶,任务就完成;如果最后一步是右脚的话,不行,因为题目要求先迈左脚,所以最后一步是右脚的方法种数为0。
- 如果有两级台阶,那么最后一步是左脚的话,方法一共是1种,就是直接迈左脚直接上两级台阶,任务就完成了;如果最后一步是右脚的话,只有一种办法,就是左脚先迈一脚,再迈右脚,所以最后一步是右脚的方法种数为1。
思路:递归
程序:
public class StaiesProblem {
public static int test1(int m){
if(m==2) {
return 1;
}
if(m==1){
return 1;
}
return test(m-1)+test(m-2);
}
public static int test(int m){
if(m==2) {
return 1;
}
if(m==1){
return 0;
}
return test1(m-1)+test1(m-2);
}
public static void main(String[] args) {
System.out.println(test(39));
}
}
运行结果: