//快速幂算法模板
ll a, b;//a为底数,b为幂
cin >> a >> b;
//假设目标:求a的b次方对100000007取模的结果
ll mod = 100000007;ll r = 1;//r表示result(结果)
while (b)
{
if (b & 1)
{
r = (r*a) % mod;//记录当指数为奇数时分离出来的底数一次方
}
b >>= 1;//右移一位,将指数分为两半
a = (a*a) % mod;//底数做平方运算
}
cout << r;
仅为个人总结模板记录
详细参考原文博主详解页面https://blog.csdn.net/qq_19782019/article/details/85621386?ops_request_misc=%7B%22request%5Fid%22%3A%22160638993119724827675717%22%2C%22scm%22%3A%2220140713.130102334…%22%7D