6.4快速幂
求x的n次幂,且保留最后3位
将n拆成2的k次方之和
#include<iostream>
#include<cstdio>
using namespace std;
int QuickPower(int x,int n){ //x的n次幂
int mod=1000;
int answer=1;
while(n!=0){
if(n%2==1){
answer*=x; //若当前位为1,累乘a的2的k次幂
answer%=mod; //求后三位
}
n/=2; //将n右移一位
x*=x;
x%=mod;
}
return answer;
}
int main(){
int a,b;
while(scanf("%d%d",&a,&b)!=EOF){
if(a==0&&b==0){
break;
}
printf("%d\n",QuickPower(a,b));
}
return 0;
}