快速幂

求快速幂的两种方法:

第一种:

ll fastpow(ll a,ll b)  //快速幂(时间复杂度为o(logn)) 
{
	if(b == 1) return a;
	ll temp = fastpow(a, b / 2);
	if(b % 2 == 1) return temp * temp % mod * a % mod;
	else return temp * temp % mod;
}

第二种:

ll fastpow(ll a,ll b)  //快速幂(最多算到2^62) 
{
	ll res = 1;
	while(b){
		if(b & 1) res = res * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return res;
}
  • 求快速幂一般不会单独出现,它只是一个基础部分,伴随着求逆元、拓展欧几里得算法等等
posted @ 2024-08-17 17:15  懒羊羊爱吃灰太狼  阅读(40)  评论(0)    收藏  举报