C语言 求一个数N次方最后三位数
1个回答
展开全部
一、对于任意一个数,求最后三位数,可以对其用1000取余。 即对于任意的n,其最后三位数为
n%1000
二、对于任意整数n, 如果后三位为l,那么存在整数k, 可以将n写作
n=k*1000+l
的形式。
三、对于任意的整数n1, n2,写作k1*1000+l1,k2*1000+l2的形式。 那么
n1*n2=(k1*1000+l1)*(k2*1000+l2)
=k1*k2*1000000+k1*l2*1000+k2*l1*1000+l1*l2
=(k1*k2*1000+k1*l2+k2*l1)*1000+l1*l2
所以,n1*n2的后三位,与l1*l2后三位相同。
四、综上,算法可以设计为,要求n的N次方的后三位,只要每次乘的时候,只取后三位结果即可。
五、代码如下:
#include <stdio.h>
int main()
{
int n,N,i,r=1;
scanf("%d%d",&n,&N);//输入n和N
n%=1000; //n截取后三位。
for(i = 0; i < N; i ++)//循环N次,计算N次乘积。
r=r*n%1000;//每次结果取后三位。
printf("%d\n", r);//输出结果
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询