我正在尝试解决需要模幂运算的 SPOJ 问题。我正在使用以下 C 代码
long long modpow(long long a,long long b,long long mod)
{
long long product,pseq;
product=1
pseq=a%mod;
while(b>0)
{
if(b&1)
product=(product*pseq)%mod;
pseq=(pseq*pseq)%mod;
b>>=1
}
return product;
}
问题是当我想计算时,它会因为溢出(2^249999999997)%999999999989
而给出答案。0
如何避免溢出?