- 题解
#210. 最小非负值 ( lastmin) 更优解
- 2022-11-22 21:39:40 @
首先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 条评论
-
zlttcl LV 10 MOD @ 2022-11-28 21:26:43
准确来说是更改了快读,是没想到,但显然不要这么含蓄地内涵我
- 1