题目
题解
利用快速幂进行快速运算并对1000去模
位运算优化版快速幂
int kuaisumi(int di,int mi,int mo)
{
int ans=1;
while(mi)
{
if(mi & 1) //相当于mi %2==1;
{
ans=ans*di%mo;
}
di=di*di%mo;
mi >>= 1; //相当与 mi/=2;
}
return ans;
}
AC代码
#include <bits/stdc++.h>
using namespace std;
int kuaisumi(int di,int mi,int mo)
{
int ans=1;
while(mi)
{
if(mi & 1)
{
ans=ans*di%mo;
}
di=di*di%mo;
mi >>= 1;
}
return ans;
}
int main ()
{
int n,m;
while(cin>>n>>m)
{
if(n==0&&m==0)
break;
int ans=kuaisumi(n,m,1000);
cout<<ans<<"\n";
}
return 0;
}