#include<iostream>
using namespace std;
int main()
{
int a, b;
while (cin >> a >> b)
{
if (a == 0 && b == 0)
break;
int r = 1;
for (int i = 1; i <= b; ++i)
r = r*a % 1000;
cout << r << endl;
}
return 0;
}
如果直接用pow求值后再取余会溢出,所以用for循环每次乘完就取一次余,再相乘即可
取余性质:((a*b) % p * c)% p = (a * (b*c) % p) % p 即取余和乘法运算可以相互交换,所以乘完再取余可以转换为每乘一次取一次余。