链接:
http://acm.gdufe.edu.cn/Problem/read/id/1121
看到题的时候并不会做,,,
然后群里有人在问斐波那契。。。
然后手贱试着找了下循环节。。
(f[0]=0,f[1]=1)
for(int i=1;;i++){
if(f[i]==0&&f[i+1]==1){
printf("%d\n",i);
break;
}
if(i==100000)
break;
}
然后输出了3336。
然后就AC了。
#include <stdio.h>
const int maxn=4000;
const int mod=10009;
int f[maxn];
int main(){
f[0]=0;
f[1]=1;
for(int i=2;i<maxn;i++)
f[i]=(f[i-1]%mod+f[i-2]%mod)%mod;
long long n;
while(scanf("%lld",&n)==1){
printf("%d\n",f[n%3336]);
}
return 0;
}