简单递推
逆向思考,最后一级只能是m-1步或是m-2步
总的走法就是m-1的走法加上m-2的走法,即最后一级的前一级的走法
递推公式就是F(n) = F(n-1) + F(n-2)
令F(1) = 1 , F(2) = 2
也就是斐波拉基递推
【AC代码】
#include <cstdio>
#include <cmath>
int step[50];
int main()
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
step[1] = 1;
step[2] = 2;
for(int i=3; i<m; i++)
{
step[i] = step[i-1] + step[i-2];
}
printf("%d\n",step[m-1]);
}
return 0;
}