首先想到的是pow,但是数值大了会导致数据溢出
#include<bits/stdc++.h>
using namespace std;
int main(){
long long base,power,result;
cin>>base>>power;
result=pow(base,power);
cout<<result%1000<<'\n';
return 0;
}
改进之后的代码,可以计算相当大的数
#include<bits/stdc++.h>
using namespace std;
long long fastpower(long long base,long long power){
long long result=1;
while(power>0){
if(power&1){//即if(power%2==1),判断奇偶
result=result*base%1000;
}
power>>=1;//二进制数右移一位,相当于power=power/2
base=(base*base)%1000;
}
return result;
}
int main(){
long long base,power;
cin>>base>>power;
cout<<fastpower(base,power)<<'\n';
return 0;
}