39级台阶问题

小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!     站在台阶前,他突然又想着一个问题:     如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?     请你利用计算机的优势,帮助小明寻找答案。

 

public class Test {
    private static int count;
    public static void main(String[] args) {
        count = 0;
        walkUp(0, 0);
        System.out.println(count);// 51167078
    }

    /**
     * 模拟上台阶
     *
     * @param step 使用的步数
     * @param tj 总过的台阶数,范围0-39
     */
    private static void walkUp(int step, int tj){
        if(tj > 39){
            return;
        }
        if(tj == 39){
            if(step%2 == 0){
                count++;
            }
            return;
        }
        walkUp(step+1, tj+1);
        walkUp(step+1, tj+2);
    }

}
发布者:songJian   点击数:1609   发布时间:2018-10-16 18:03:56   更新时间:2018-10-16 18:06:33
正在加载评论...
相关文章