一個關於臺階的問題。
如果我每一步只能邁上1個或者2個臺階。先邁左腳,然後左右交替,最後一步邁右腳,也就是說一共要走偶數步,那麼邁上n級臺階,有多少種不同的上法呢?
輸入
第一行一個整數n,表示臺階的數量。
輸出
結果佔一行,表示用偶數步,邁上n級臺階不同的方案數目,測試數據保證結果不超出int範圍
樣例輸入
10
樣例輸出
44
#include<cstdio>
#include<iostream>
using namespace std;
const int maxn=1000000;
int a[maxn];
int main(){
a[0]=0;
a[1]=0;
a[2]=1;
a[3]=2;
a[4]=2;
for(int i=5;i<100000;i++){
a[i]=a[i-2]+2*a[i-3]+a[i-4];
}
int n;
while(cin>>n)
cout<<a[n]<<endl;
}