假设你现在正在爬楼梯,楼梯有 nnn 级。每次你只能爬 111 级或者 222 级,那么你有多少种方法爬到楼梯的顶部?
输入格式
第一行输入一个整数 n(1≤n≤50)n(1\leq n \leq 50)n(1≤n≤50),代表楼梯的级数。
输出格式
输出爬到楼梯顶部的方法总数。
样例输入
5
样例输出
8
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long LL;
const int maxn=50+5;
LL dp[maxn];
int main(){
int n;
while(scanf("%d",&n)==1){
memset(dp,0,sizeof(dp));
dp[0]=0;
dp[1]=1;
dp[2]=2;
for(int i=3;i<=n;i++){
dp[i]=dp[i-1]+dp[i-2];
}
printf("%lld\n",dp[n]);
}
return 0;
}