基于快速幂的代码
可以进行精度较高的取模运算,首先注意到取模运算有如下性质
(a*b)mod c=(a mod c)*(b mod c)=【(a mod c)*(b mod c)】mod c
可以得到如下代码,计算a的b次方的后三位数
#include<bits/stdc++.h>
using namespace std;
long long ans=1;
long long f(long long a,long long b)
{
if(b==0)return 1;
a=a%1000;//a很大时防止溢出
while(b)
{
if(b%2==1)
{
ans=(ans*a)%1000;
}
a=(a*a)%1000;
b=b/2;
}
return ans;
}
int main()
{
long long a,b;
cin>>a>>b;
long long k=f(a,b);
cout<<k;
}