1188 斐波那契数列(2)
首先说明一下几个很重要的地方
就是一个裸裸的斐波那契,但是有很多个bug
对于函数的递推和数组加循环的递推,首先都会想到函数递推,但还是这种做法会重复的验算很多次,做了很多没有用的运算,这是导致超时的原因,所以可以用循环求取每一个f数组,这样最后离线输出即可,不过就是空间换时间
还有就是对于定义MOD SIZE这些常量的时候,需要注意,这些东西通常不能用来操作,或者说不能使用define来定义,被坑了,真的坑爆了…
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int n,a[200];
int f[1000000];
int main()
{
cin>>n;
f[1]=f[2]=1;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=3;i<=1000000;i++)
{
f[i]=(f[i-1]+f[i-2])%1000;
}
for(int i=0;i<n;i++)
{
cout<<f[a[i]]<<endl;
}
return 0;
}