求A^B的最后三位数表示的整数。
说明:A^B的含义是“A的B次方” ##
A,B的范围都是从1到10000,当输入比较大时,3次方后结果更大,这样就一定会超界的,用long long 也放不下,而题目中又只要求输出最后三位数表示的数即可,所以可以在每次计算后都只保留最后三位数就可以了,只有这三个数是有效的,这样就不会超界了,而且也保留了结果。
#include<stdio.h>
int main()
{
int a,b,i;
int t;
while (scanf ("%d%d",&a,&b)!=EOF&&a!=0||b!=0)
{
t=1;
for (i=0;i<b;i++)
{
t=((a%1000)*(t%1000))%1000;
}
printf ("%d\n",t);
}
return 0;
}