计蒜客 爬楼梯 (dp)

假设你现在正在爬楼梯,楼梯有 nnn 级。每次你只能爬 111 级或者 222 级,那么你有多少种方法爬到楼梯的顶部?

输入格式

第一行输入一个整数 n(1≤n≤50)n(1\leq n \leq 50)n(1n50),代表楼梯的级数。

输出格式

输出爬到楼梯顶部的方法总数。

样例输入

5

样例输出

8
AC代码:

#include
#include
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;
}






你可能感兴趣的:(动态规划)