欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快速幂 & 快速乘

程序员文章站 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;
}
相关标签: 快速乘 快速幂