a的n次方的最后三位数c语言,求一个数的后三位

这是一个C语言程序,用于计算一个不超过150的数a的n次方的最后三位数。通过循环乘法并取模运算实现,确保结果始终只包含最后三位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

29.【中学】求最后3位数值

小明在中学会求一个数的 n 次方了,但计算机还不会,请你来编写一个程序吧。由于计算机比较“笨”,所以我们编写程序的功能不用太强,只要能算出 a 的 n 次方的最后 3 位数就可以了。

输入:

a 和 n 的值。假设 a<=150 。

输出:

求 a 的 n 次方的最后 3 位数。

提示:再想一想,你的方法对吗?你用的是什么数据类型?

测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助

测试用例 1 以文本方式显示

10 0↵

以文本方式显示

The last 3 numbers is 1.↵

1秒 64M 0

测试用例 2 以文本方式显示

2 8↵

以文本方式显示

The last 3 numbers is 256.↵

1秒 64M 0

测试用例 3 以文本方式显示

100 10↵

以文本方式显示

The last 3 numbers is 000.↵

1秒 64M 0

代码

#include 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;

}

解释

C语言 求一个数N次方最后三位数

#include long int main ()

{

long int m,n,i,a,b;

scanf ("%d%d",&m,&n);

a=m;

for (i=1;iif (a>1000)

{a=a%1000;}

a=m*a;

if (a%1000==0)

printf (“The last 3 numbers is 000.”);

else

b=a%1000;

printf (“The last 3 numbers is %d.”,b);

return 0;

}

为什么输入一个数字后不会循环 直接就取余了呢。。

我来答

分享

举报 浏览 3668 次

2个回答

#网络热词科普# D&G是什么意思?

最佳答案

flczzhang

知道合伙人互联网行家 2017-04-13

一、对于任意一个数,求最后三位数,可以对其用1000取余。 即对于任意的n,其最后三位数为

n%1000

二、对于任意整数n, 如果后三位为l,那么存在整数k, 可以将n写作

n=k*1000+l

的形式。

三、对于任意的整数n1, n2,写作k11000+l1,k21000+l2的形式。 那么

n1n2=(k11000+l1)(k21000+l2)

=k1k21000000+k1l21000+k2l11000+l1*l2

=(k1k21000+k1l2+k2l1)1000+l1l2

所以,n1n2的后三位,与l1l2后三位相同。

四、综上,算法可以设计为,要求n的N次方的后三位,只要每次乘的时候,只取后三位结果即可。

另附一段代码

#include#includeint main()

{

int n,i,j,a,k,m[300],q[300],p[3],g,s,b,f=3;

scanf("%d%d",&a,&n);

b=a/100;

s=(a%100)/10;

g=a%10;

for(i=0;i<300;i++)

{

m[i]=0;

q[i]=0;

}

m[0]=g;m[1]=s;m[2]=b;p[0]=g;p[1]=s;p[2]=b;

for(i=1;i=10)

{

q[k+j+1]=q[k+j+1]+q[k+j]/10;

q[k+j]=q[k+j]%10;

}

}

}

f=f+2;

for(k=0;k

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值