1645 - 人见人爱 A ^ B
时间限制 : 1 秒
内存限制 : 32 MB
求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”
题目输入
输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。
题目输出
对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。
输入/输出样例
输入格式
1 1 7 7 3 7 0 0
输出格式
1 543 187
C语言解答
#include<stdio.h> int xx(int a,int b) { int m,n; if(b%2==0) { m=a*a%1000; n=xx(m,b/2); return n%1000; } else if(b==1) return a; else { m=a*a%1000; n=xx(m,b/2); return n*a%1000; } } int main() { int A,B,i; while(scanf("%d %d",&A,&B)!=EOF) { if(A==0&&B==0) break; i=xx(A%1000,B); printf("%d\n",i); } }
C++解答
#include <stdio.h> void run(int a,int b) { int i,sum=1; a%=1000; for(i=1;i<=b;i++) sum=sum*a%1000; printf("%d\n",sum); } int main() { int a,b; scanf("%d%d",&a,&b); while((a!=0)||(b!=0)) { run(a,b); scanf("%d%d",&a,&b); } return 0; }
Python解答
while True: a, b = map(int, raw_input().split()) if a == 0 and b == 0: break print a ** b % 1000