Problem 08. A^B的后三位
题目简述:
求A^B的最后三位数表示的整数(1<=A,B<=10000)。
解题思路:
由于A^B的值可能会很大,我们无法找到一个数据类型来存放这个值,因此,可以进行一个很巧妙的转换。乘积的后三位数只与乘数与被乘数的后三位有关,因此,只需不断用1000取余。
源代码:
#include<iostream>
using namespace std;
int main()
{
long long int a,b,x;
while(cin>>a>>b)
{
if(a==0&&b==0) break;
else
{
x=a%1000;
for(int i=1;i<b;i++)
{
x=x*a%1000;
x=x%1000;//不断将x取余,保留x的后三位
}
cout<<x<<endl;
}
}
return 0;
}