HDU - 2041 - 超级楼梯(dp)

时间:2023-03-10 00:46:14
HDU - 2041 - 超级楼梯(dp)

题意:

有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?

思路:

如何到第n阶台阶,只能从n-1和n-2台阶上去,那么只需要计算到n-1阶台阶到n-2阶台阶即可

代码:

#include<iostream>
using namespace std; const int maxn = 50;
int a[maxn]; void init() {
a[1] = 1;
a[2] = 1;
a[3] = 2;
for(int i = 4; i <= maxn-1; i++) {
a[i] = a[i-1] + a[i-2];
}
} int main() {
init();
int t, n;
scanf("%d", &t);
while(t--) {
scanf("%d", &n);
printf("%d\n", a[n]);
}
return 0;
}