这是正确的取模:
void read(long long &n) {
char c = getchar(); n = 0;
while (c < '0' || c > '9') c = getchar();
while (c >= '0' && c <= '9') {
n = (n * 10 + c - '0') % mod;
c = getchar();
}
}
这是错误的取模:
void read(long long &n) {
char c = getchar(); n = 0;
while (c < '0' || c > '9') c = getchar();
while (c >= '0' && c <= '9') {
n = n * 10 + c - '0';
if (n >= mod) n -= mod;
c = getchar();
}
}
为什么?