爬楼梯
假设你现在正在爬楼梯,楼梯有n级。每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部?
格式:
第一行输入一个数n(n<=50),代表楼梯的级数。
接下来一行输出你的方法总数。
样例输入
5
样例输出
8
dp[n]=dp[n-1]+dp[n-2]
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[51];
int plt(int n){
if(dp[n]>0)return dp[n];
dp[n]=plt(n-1)+plt(n-2);
return dp[n];
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
memset(dp,0,sizeof(dp));
dp[1]=1;
dp[2]=2;
printf("%d\n",plt(n));
}
return 0;
}