long modPow(long x, long y)
{
//Caculates x raised to the y-power modulo MOD
//in O(log(y)) time by using repeated squaring
long r = 1;
while(y > 0){
if( (y&1) != 0) {
r = (r * x) % MOD;
}
x = (x * x)%MOD;
y >>= 1;
}
return r;
}
但是我对这个函数感到困惑,无法计算 ; 的模值x^y%MOD
。
为什么x = (x * x)%MOD;
需要在函数中?
这对我来说没有意义。