原理:a^b=a^(Binary(b)) 例如: 2^3=2^(11)=2^(10+01)=(2^10)*(2^01); 而二进制中每后一位的权重都是前一位的2倍,故(2^10)=(2^01)*(2^01)。
#include<bits/stdc++.h>
using namespace std;
long long arr[
100];
int main(){
long long num;
long long val,temp1,temp2;
while(
scanf(
"%lld%lld",&num,&val)!=EOF&&num!=
0){
temp1=
1;
while(val!=
0){
if(val%
2==
1) temp1*=num;
val/=
2;
num*=num;
num%=
1000;
temp1%=
1000;
}
printf(
"%lld\n",temp1);
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-11101.html