求A^B的最后三位数表示的整数。
说明:A^B的含义是“A的B次方”
2 3
12 6
6789 10000
0 0
8
984
1
思路:注意输入,是输入多组,0 0结束,再一并输出所有结果,并不是输入一组,再输出一组;
#include<stdio.h> #include<string.h> int a[100000]; int quickpow(int a,int b,int c) { int ans=1; while(b) { if(b&1) ans=ans*a%c; a=a*a%c; b>>=1; } return ans; } int main() { int m,n,k,p=0; memset(a,0,sizeof(a)); while(scanf("%d %d",&m,&n)!=EOF) { if(m==0 && n==0) break; k=quickpow(m,n,1000); a[p++]=k; } for(int i=0;i<p;i++) { printf("%d\n",a[i]); } return 0; }