HPUOJ---2017寒假作业--专题-1/M-人见人爱A^B

来源:互联网 发布:益盟bs指标源码 编辑:程序博客网 时间:2024/05/17 06:22

M - 人见人爱A^B

 

求A^B的最后三位数表示的整数。 
说明:A^B的含义是“A的B次方” 
Input
输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。
Output
对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。 
Sample Input
2 312 66789 100000 0
Sample Output
89841
思路:求最后三位整数,即A的B次方对1000取余。
代码一:用快速幂。
#include<stdio.h>typedef long long LL;LL Quick_MI(LL n,LL m,LL c){LL s=1;while(m){n=n%c;if(m&1){s=(s*n)%c;}n=(n*n)%c;m=m/2;}return s;}int main(){long long n,m,k;while(~scanf("%lld%lld",&n,&m)&&(n||m)){k=Quick_MI(n,m,1000);printf("%-lld\n",k);}return 0;}
代码二:循环,同余定理
#include<stdio.h>int main(){int n,m,k,i;long long s; while(scanf("%d%d",&n,&m),n!=0||m!=0){s=1;for(i=1;i<=m;i++){s=s*n;s=s%1000;}printf("%lld\n",s);}return 0;}



0 0
原创粉丝点击