首先ZLT解题报告完全正确且确实实用!!!但是考场上若用“高精%”费时又易错。

明确这一点之后我们不妨想一想到底要不要用字符串?

不一定!

假设该数个位为x,十位为y,百位为z 则:n=100z+10y+z 即判断100z+10y+z的是否被4整除即可 因为100=25*4 所以100z能被4整除; 所以判断10y+z是否被4整除即可

综上所述:

我们只需要将 n 的最后两位保留,就可以准确求得余数int范围完全可以承受。

Node

#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
using namespace std;
inline int read()
{
	char ch=getchar();
	int x=0,m=1;
	while(!isdigit(ch)){
		if (ch=='-') m=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=x*10+ch-'0';
		x%=100;//保留后两位
		ch=getchar();
	}
	return x*m;
}
inline void write(int x)
{
	if (x<0) putchar('-'),x=-x;
	if (x>=10) write(x/10);
	putchar(x%10+'0');
}

signed main()
{
	int n(read());//读入
	n%4==0||n%4==3 ? write(0) : write(1);//可参见ZLT解题报告。
	return 0;
}

Note:本人建议还是使用ZLT的代码做题,练练高精度。

1 条评论

  • @ 2022-11-28 21:26:43

    准确来说是更改了快读,是没想到,但显然不要这么含蓄地内涵我

    • 1