题意:
有一楼梯共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
", a[n]);
}
return 0;
}