AC
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#define int long long
using namespace std;
inline void read(int &x){
int f=1;
char ch=getchar();
x=0;
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+(ch&15);
ch=getchar();
}
x*=f;
}
inline void write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
signed main(){
int m;
read(m);
int now=0,next=1;
int temp;
for(int i=1;i<=m*m;i++){
temp=(now+next)%m;
if(next==0 && temp==1){
write(i);
return 0;
}
now=next;
next=temp;
}
return 0;
}
在 此 做法中,我发现有这样几个问题 :
long long
,要不然 #9
会 WA
,显示 Too short on line 1
long long
的情况下,将 i<=m*m
改为 i<=m^2
可以 AC
,且用时较 long long
来说还短 (数据问题 ?)求解答