#include <iostream>
#include <cstdio>
#define N 102
using namespace std;
int a[N];
/*int taijie(int m)
{
if(m==1) return 0;
else if(m==2) return 1;
else if(m==3) return 2;
else
return taijie(m-1)+taijie(m-2);
}*/
void taijie()
{
int i;
a[1]=0;
a[2]=1;
a[3]=2;
for(i=4;i<=N;i++)
a[i]=a[i-1]+a[i-2];
}
int main()
{
int n,m;
taijie();
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
printf("%d\n",a[m]);
}
return 0;
#include <cstdio>
#define N 102
using namespace std;
int a[N];
/*int taijie(int m)
{
if(m==1) return 0;
else if(m==2) return 1;
else if(m==3) return 2;
else
return taijie(m-1)+taijie(m-2);
}*/
void taijie()
{
int i;
a[1]=0;
a[2]=1;
a[3]=2;
for(i=4;i<=N;i++)
a[i]=a[i-1]+a[i-2];
}
int main()
{
int n,m;
taijie();
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
printf("%d\n",a[m]);
}
return 0;
}
上面注释了的代码是我第一次用的,虽然没有错,但是运行超出了时间限制,
后面我想到了用数组先求出1-102步台阶所需的走法的数量,最后根据要求的数量台阶的
走法数量时直接带回数组就行了。。。。
3845

被折叠的 条评论
为什么被折叠?



