快速幂 & 快速乘
程序员文章站
2022-03-24 15:52:56
...
两种算法通常搭配使用
快速幂
当指数为奇数时答案先乘上底数,指数再减一(化幂为乘)
快速乘
基本思想和快速幂相同,细节稍作修改(化乘为加)
ll Mul(ll x, ll a) {
ll res = 0;//由于是加法累计答案,初始化为0
while(a) {
if(a & 1)
res = (res + x) % mod;
x = (x + x) % mod;
a <<= 1;
}
return res;
}
ll Pow(ll x, ll a) {
ll res = 1;
while(a) {
if(a & 1)
res = (res * x) % mod;
x = (x * x) % mod;
a <<= 1;
}
return res;
}
上一篇: PHP数组学习之怎么比较两个数组求差集
下一篇: jsp/servlet会话是什么