解题思路:
每进行一次运算就进行一次取模运算,并且取后面三位,最终得到的结果就是答案
代码实现:
#include<iostream>
using namespace std;
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)==2)
{
if(a==0&&b==0)
break;
int ans=1;
for(int i=0;i<b;i++)
{
ans=ans%1000*a;
}
printf("%d\n",ans%1000);
}
return 0;
}
如何快速求幂运算:
1.非递归
int power(int a,int n)
{ int ans=1;
while(n)
{ if(n%2)
ans=ans*a;
a=a*a;//底数平方
n=n/2;//指数减半
}
}
2.递归
int power(int a,int n)
{ int ans;
if(n==0) ans=1;
else
{ ans=power(a*a,n/2);
if(n%2==1)
ans*=a;
}
return ans;
}