开1百万就不会报错
#include <cstdio>
long long fib[10000000]={0,1,1};
int main(){
long long m,ans=0;
scanf("%lld",&m);
for(register long long i=3;;i++){
fib[i]=((fib[i-1])+(fib[i-2]))%m;
if(fib[i-1]==0&&fib[i]==1){
ans=i-1;printf("%lld",ans);
return 0;
}
}
return 0;
}
改成这样就过了
#include <cstdio>
long long fib[10000000];
int main(){
fib[0]=fib[1]=1;
long long m,ans=0;
scanf("%lld",&m);
for(register long long i=3;;i++){
fib[i]=((fib[i-1])+(fib[i-2]))%m;
if(fib[i-1]==0&&fib[i]==1){
ans=i-1;printf("%lld",ans);
return 0;
}
}
return 0;
}