小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!
站在台阶前,他突然又想着一个问题:
如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?
官方答案:51167078
public class Main {
/**
* @param args
* @throws IOException
*/
static int res = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
F(0, 0);
System.out.println(res);
}
private static void F(int x, int y) {
// TODO Auto-generated method stub
if (y >= 39) {//特别注意着一点,y有可能是 >39, 比如38+2;
//如果不对 >39进行处理,则会发生java.lang.StackOverflowError
if (y == 39 && x % 2 == 0)
res++;
return;
}
F(x + 1, y + 1);
F(x + 1, y + 2);
}
}