【模板】快速幂
在我们编写C++程序时,求幂运算常常会消耗我们比较大的时间。用我们普通的求幂运算方法(n个x重复相乘),时间复杂度会达到O(n)。对我们的程序编写十分不利。那么,我们就有了一种新算法——快速幂。
快速幂使用了倍增的思想,减少循环次数时间复杂度可以达到O(log n)。对程序的编写十分有利。
下面附上快速幂模板:
#include<iostream>
#define ll long long
#define MOD 1000000007 //根据题目要求更改MOD的值
using namespace std;
ll kuaisumi(ll a,ll b)//a的b次幂
{
ll ans=1,c=a;
while(b)
{
if(b&1){ans*=c,ans%=MOD;}
c*=c;
c%=MOD;
b>>=1;
}
return ans%MOD;
}
int main(){
ll a,b;
cin>>a>>b;
cout<<kuaisumi(a,b); //调用函数
return 0;
}
结束啦qwq

浙公网安备 33010602011771号