一、主要思想
快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。 时间复杂度为O(log₂N)二、代码
代码如下(示例):
#include <iostream>
using namespace std;
typedef long long ll;
ll FastPower(ll base,ll power,ll mod){
ll result = 1;
while(power>0){
if(power&1) result=result*base%mod; //判断指数是否为奇数,位运算效率更高
power=power>>1;
base=(base*base)%mod;
}
return result%mod;
}
int main(){
ll a,b,c; //给定底数,指数,以及模数
cin>>a>>b>>c;
cout<<FastPower(a,b,c);
return 0;
}