蓝桥杯《39级阶梯》
小明刚刚看完电影《第9级台阶》,离开电影院的时候,他数了数礼堂的前的台阶数,恰好是39级!
站在台阶前,太突然又想到一个问题:
如果我每一只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呐?
(1)问题分析
显然是一个递归问题。走了n=39级,并且走了偶数步,这时方法种数num++;或者走了40,这时不变化。函数fun()可以计算在上面的条件n级有多少种走法,则若走了1阶台阶,剩余的走法有fun(n-1)种,若走了2阶,剩余的走法有fun(n-2)种。
(2)程序代码
package ch01;
import java.util.Scanner;
public class zuidagonggongzixvlie {
private static int num=0;
public static void main(String[] args) {
fun(39,0);
System.out.println(num);
}
public static void fun(int n,int step) {
if(n<0) return;
if(n == 0)
{
if(step%2 == 0)
num++;
return;
}
fun(n-1, step+1);
fun(n-2, step+1);
}
}