题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041
解题思路:
dp[i]表示到这个台阶的方法,可以由上一级台阶或者上上一级台阶跳一步跳到
所以dp[i] = dp[i-1] +dp[i-2]
代码:
#include<cstdio>
#define ll long long
ll dp[55];///1->i的方法
void pt()
{
dp[1] = 0;
dp[2] = 1;
dp[3] = 2;
for (int i=4;i<50;i++) dp[i] = dp[i-1]+dp[i-2];
}
int main()
{
pt();
int a,T;
scanf("%d",&T);
while (T--){
scanf("%d",&a);
printf("%lld\n",dp[a]);
}
return 0;
}