题目要求:计算A的B次方,取结果的后三位
思路:将次方降维,再计算结果。取结果的后三位,这就可以每次只取后三位计算。
#include<iostream>
#include<math.h>
using namespace std;
void main()
{
int a;
int b, ans = 1;
while (scanf("%d%d", &a, &b) != EOF)
{
ans = 1;
if (a == 0 && b == 0) {
break;
} else {
while (b != 0) {
if (b % 2 == 1) {
ans *= a;
ans %= 1000;
}
b /= 2;
a *= a;
a %= 1000;
}
printf("%d\n", ans);
}
}
}