int big_mod(const string& a, int b) {
long ret = 0; // 防止 ret * 10 溢出
for (auto c : a) {
ret = ((ret * 10) % b + (c - '0') % b) % b; // ret = ((ret * 10) + (c - '0')) % b
}
return (int)ret;
}
/* 示例说明
1234 % 11 == ((((0*10 + 1)*10 + 2)*10 + 3)*10 + 4) % 11
== ((((0*10 + 1)*10 + 2)*10 + 3)*10 % 11 + 4 % 11) % 11
== ((((0*10 + 1)*10 + 2)*10 % 11 + 3 % 11)*10 % 11 + 4 % 11) % 11
== ((((0*10 + 1)*10 % 11 + 2 % 11)*10 % 11 + 3 % 11)*10 % 11 + 4 % 11) % 11
== ((((0*10 % 11 + 1 % 11)*10 % 11 + 2 % 11)*10 % 11 + 3 % 11)*10 % 11 + 4 % 11) % 11