正常情况下,面对2的60次方模1e9+7,很难分配那么大的存储空间来存储2的60次方,也没必要。
大数模幂如下:
//大数模幂 Large number modular power
long long LNMP(long long x, long long y,long long mod) {
long long res = 1;
while (y)
{
if (y & 1)
res = (res * x) % mod;
x = (x * x) % mod;
y = y >> 1;//y除以2
}
return res;
}
看懂上一个代码的话,大数模乘自然而然就会了
大数模乘如下:
long long LNMM(long long x, long long y, long long mod) {
long long res = 0;
while (y)
{
if (y & 1)
res = (res + x) % mod;
x = (x * 2) % mod; //x乘2模mod
y = y >> 1; //y除以2
}
return res;
}