快速幂
时间复杂度O(logn)
//非递归快速幂
typedef long long ll;
ll quickPow(ll x, ll n) {
ll res = 1;
while(n) {
if (n & 1) {
res = res * x % mod;
}
x = x * x % mod;
n >>= 1;
}
return res;
}
// 递归版本
typedef long long ll;
ll quickPow(ll a, ll n)
{
if (n == 0)
return 1;
else if (n % 2 == 1)
return qpow(a, n - 1) * a % mod;
else
{
ll temp = qpow(a, n / 2) % mod;
return temp * temp % mod;
}
}