快速幂

循环

#define LL long long
LL qpow(LL n,LL m){
	LL ans = 1%mod;
	while(m>0){
		if(m&1) ans = ans*n%mod;
		n = n*n%mod;
	        m >>= 1;
	}
	return ans;
}

递归

#define LL long long
LL qpow(LL n,LL m){
    if(m==0) return 1%mod;
    else if(m&1) return qpow(n,m-1)*n%mod;
    else{
        LL tmp = qpow(n,m/2)%mod;
        return tmp * tmp % mod;
    }
}
posted @ 2020-06-11 15:05  棉被sunlie  阅读(19)  评论(0)    收藏  举报