/*
*
*Problem Description
*求A^B的最后三位数表示的整数。
*说明:A^B的含义是“A的B次方”
*
*
*Input
*输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。
*
*
*Output
*对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。
*
*
*Sample Input
*2 3
*12 6
*6789 10000
*0 0
*
*
*Sample Output
*8
*984
*1
*
*
*Author
*lcy
*
*
*Source
*ACM程序设计期末考试(2006/06/07)
*
*
*Recommend
*lcy
*
*/
#include<iostream>
using namespace std;
int main() {
int n, m, sum[4], result;
while (cin >> n >> m) {
result = 0;
sum[0] = 1;
sum[1] = 0;
sum[2] = 0;
if (n == 0 && m == 0)
break;
else if (n == 0) {
cout << "0\n";
continue;
}
else if (m == 0) {
cout << "1\n";
continue;
}
for (int i = 0; i < m; i++) {
sum[0] *= n;
sum[1] *= n;
sum[2] *= n;
for (int j = 0; j < 3; j++) {
if (sum[j] > 9) {
sum[j + 1] += sum[j] / 10;
sum[j] %= 10;
}
}
}
for (int i = 2; i >= 0; i--) {
result = result * 10 + sum[i];
}
cout << result << endl;
}
system("pause");
return 0;
}
hdu_problem_2035_人见人爱A^B
最新推荐文章于 2020-08-06 15:07:17 发布