- 31.15%
- 1000ms
- 65536K
-
假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1 级或者 2 级,那么你有多少种方法爬到楼梯的顶部?
输入格式
第一行输入一个整数 n(1≤n≤50),代表楼梯的级数。
输出格式
输出爬到楼梯顶部的方法总数。
样例输入
5
样例输出
8
dp,,,,
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main() { int n; while(~scanf("%d",&n)) { long long map[53][102]; map[1][1]=map[1][2]=map[n+1][1]=map[n+1][2]=1; for(int i=2; i<=n; i++) { for(int j=i; j<=n; j++) { map[i][j]=map[i-1][j-1]+map[i-1][j-2]; map[n+1][j]+=map[i][j]; } } printf("%lld\n",map[n+1][n]); } return 0; }