[2016 NUIST 程式設計競賽] D. 達朗貝爾的臺階
阿新 • • 發佈:2018-12-31
描述
達朗貝爾是法國數學家,哲學家。當牛頓和萊布尼茲一直在微積分的的基本問題上犯錯誤時,羅爾指著牛頓的鼻子說:“你的微積分就是小的謬誤加起來的大謬誤”。牛頓啞口無言,這時候達朗貝爾站了出來:“我雖然不能解釋為什麼微積分是正確的,但是隻有向前進我們才能看見希望!”這句話激勵了一代又一代的人。達朗貝爾小時候被母親拋棄在教堂附近的一個臺階上,被一位玻璃匠收養,後來這個教堂的名字就成了他的教名 。當他出名後他的母親回來找他,達朗貝爾對他的母親說:“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));
}
}
}