哎呀呀,开始用递归写了一个,调试的挺好的。一提交,惨了,time limit exceeded。看来还是不能偷懒。然后就在想,不递归这玩意儿不好弄啊。看了一下指导,明白了,先把第0项到第46项求出来,放在一个数组里,然后直接查就不会超时了。嗯,还是要注意题目的特别性。
用时:3ms
#include
#define MAX 100
int n,fib[MAX],i;
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
fib[0]=0;
fib[1]=1;
i=2;
while(i<47)
{
fib[i]=fib[i-1]+fib[i-2];
i++;
}
while(scanf("%d",&n)==1)
{
printf("%d/n",fib[n]);
}
return 0;
}