1385: 整数幂(多实例测试)
题目描述
求A^B的最后三位数表示的整数(1<=A,B<=1000)
输入
n个测试实例,每个实例给出两个正整数A,B
输出
输出A^B的最后三位(没有前导0)
样例输入
2
2 3
12 6
样例输出
8
984
要想AC就要了解(a * b) % p = (a % p * b % p) % p
AC:
#include <stdio.h>
#include <stdlib.h>
long long int pow(long long int a,long long int b)
{
long long int ans=1;
while(b)
{
if(b%2==1) ans=ans*a%1000;//每部取模防止数据溢出
a=(a*a)%1000;//每部取模防止数据溢出
b=b/2;
}
return ans;
}
int main()
{
long long int n,m,s;
int l;
scanf("%d",&l);
while(l--)
{
scanf("%lld%lld",&n,&m);
s=pow(n,m);
printf("%lld\n",s);
}
return 0;
}