1. 程式人生 > >[2016 NUIST 程式設計競賽] D. 達朗貝爾的臺階

[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)); } } }