首页 > 学院 > 开发设计 > 正文

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

2019-11-08 00:50:45
字体:
来源:转载
供稿:网友

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 0Sample 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;}
上一篇:seven多态抽象

下一篇:nine异常处理

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表