2048!末尾有多少个0? 请描述具体思路, 并根据思路编写相应函数(用CC++)

2048!末尾有多少个0? 请描述具体思路, 并根据思路编写相应函数(用CC++),第1张

数数有多少个2和5的因数。

因为2远多于5,只对5进行计数就可以了。

以下为一个简便的算法。

#include<stdio.h>

int main()

{

int n 陵配= 0//输入目标数

int cnt_5 = 0//用于计数因子5的计数器

scanf("%d", &n)//输入目标数

while(n 差颂!= 0)//对因子5进行计数

{

n /= 5

cnt_5 += n

}

printf("虚汪郑There are %d 0s in %d!\n", cnt_5, n)//输出结果

return 0

}

1、最大数尽可能放在角落。\x0d\x0a\x0d\x0a2、数字按顺序紧邻排列。\x0d\x0a\x0d\x0a3、首先满足最悄困大数和次大数在的那一列/行是满的。\x0d\x0a\x0d\x0a4、时刻贺毕注意活动较大数(32以上)旁边要有相近的数。\x0d\x0a\x0d\x0a5、以大数所在禅运芹的一行为主要移动方向\x0d\x0a\x0d\x0a6、不要急于“清理桌面”。

方案有很多啊,

基本思路岁郑应该就是做累加,求出2048个数的和,最后将所求的和进行亩如移位 *** 作,相当于做除法 *** 作,2048=2^11,

在Verilog中除以2048就是向右移11位,若2048个数的和为sum,则sum/2048的最终结果为

{11'迅雀启b0,sum>>11}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12438865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存