long long quickMul(long long a, long long b, long long mod) {
a %= mod;
b %= mod;
long long ans = 0;
while(b) {
if(b & 1) {
ans += a;
if(ans >= mod) ans -= mod;
}
b >>= 1;
a <<= 1;
if(a >= mod) a -= mod;
}
return ans;
}
普通快速乘
long long quickMul(long long a, long long b, long long mod) {
long long ans = 0;
while(b) {
if(b & 1) ans = (ans + a) % mod;
a = (a+a) % mod;
b >>= 1;
}
return ans;
}
大佬们能不能解释一下为什么第一段代码中想用减法来代替求模的if语句为什么不是while语句,只减一次能达到求模的作用吗