快速幂算法
快速幂算法用于快速求出a的b次方的值,为了防止程序溢出,通常会在运算过程中对每次的运算结果取模
快速幂算法模板:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL mod = 1e7+7; //数字较大时为了防止溢出,通常要进行取模运算
LL qmod(LL p , LL q) //快速幂算法求p的q次方
{
LL ans = 1;
while(q)
{
if(q&1)
ans = (p*ans) % mod;
p = (p * p) % mod;
q >>= 1;
}
return ans;
}
int main()
{
int a,b;
cin >> a >> b;
cout << qmod(a,b); //这里输出a的b次方
return 0;
}