简要题意:
求A^B的最后三位数表示的整数。
解题思路:
输入A、B,将A循环相乘B次,当得数大于三位数时取后三位继续与A相乘。
细节处理:
- 不能直接用A本身来循环相乘,若B极大则最终得数将会超出64位整型数。
- 直接对A除以1000然后取余,则无需判断何时乘积大于三位数,可直接循环相乘。
源代码:
#include<iostream>
using namespace std;
int main()
{
long long int A=0, B=0;
while(cin>>A>>B)
{
if(A==0&&B==0) break;
else
{
int C=1;
A%=1000; //对A取后三位余数
for(int i=1;i<=B;i++)
C=C*A%1000;
cout<<C<<endl;
}
}
return 0;
}