Some Questions
查看原帖
Some Questions
250609
_pwl楼主2020/11/19 20:49

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 ,要不然 #9WA,显示 Too short on line 1

int 提交记录

  • 在不开 long long 的情况下,将 i<=m*m 改为 i<=m^2 可以 AC,且用时较 long long 来说还短 (数据问题 ?)

i<=m^2 提交记录

求解答

2020/11/19 20:49
加载中...