[2016 NUIST 程序设计竞赛] D. 达朗贝尔的台阶

描述

达朗贝尔是法国数学家,哲学家。当牛顿和莱布尼兹一直在微积分的的基本问题上犯错误时,罗尔指着牛顿的鼻子说:“你的微积分就是小的谬误加起来的大谬误”。牛顿哑口无言,这时候达朗贝尔站了出来:“我虽然不能解释为什么微积分是正确的,但是只有向前进我们才能看见希望!”这句话激励了一代又一代的人。达朗贝尔小时候被母亲抛弃在教堂附近的一个台阶上,被一位玻璃匠收养,后来这个教堂的名字就成了他的教名 。当他出名后他的母亲回来找他,达朗贝尔对他的母亲说:“you are my stepmother”一语双关讽刺了他势力的母亲

达朗贝尔留下的是一个关于台阶的问题。

如果我每一步只能迈上1个或者2个台阶。先迈左脚,然后左右交替,最后一步迈右脚,也就是说一共要走偶数步,那么迈上n级台阶,有多少种不同的上法呢?
输入

第一行一个整数n,表示台阶的数量。
输出

结果占一行,表示用偶数步,迈上n级台阶不同的方案数目,测试数据保证结果不超出int范围
样例输入

10
样例输出

44

import java.util.Scanner;


public class 达朗贝尔的台阶 {
    public static  int getFoots(int n) {
        if(n==1)
        {
            return 0;
        }
        else if(n==2)
        {
            return 1;
        }
        else if(n==3)
        {
            return 2;
        }
        else if(n==4)
        {
            return 2;
        }
        else
        {
            return getFoots(n-2)+2*getFoots(n-3)+getFoots(n-4);
        }
    }

    public static void main(String[] args) {

        Scanner in =new Scanner(System.in);
        while(in.hasNext())
        {
            int n=in.nextInt();
            System.out.println(getFoots(n));
        }

    }

}

你可能感兴趣的:([2016 NUIST 程序设计竞赛] D. 达朗贝尔的台阶)