(算法练习.02)尾部0的个数

在这里插入图片描述

1.首先排除第一反应想到的迭代之类笨重的办法,不然没有算法的意义。
2.其次任何数得到尾部为0的途径都是偶数与5或5的倍数相乘,于是乎我们可以通过计算偶数与5的个数进行计算。
3.然而在实际中,偶数的个数肯定多于5,因此我们就可以简化为计算5的个数。
4.最后考虑特殊例子,如25x8=200(两个0),125x8=1000(三个0)。
整理思路:
①(假设n=256)将算出目标值中5的倍数的个数->256/5=51
②算出目标值中25的倍数的个数256/25=10
③算出目标值中125的倍数的个数256/125=1
可能有些同学疑问,问为什么不是256/252=20和256/1252=2。
有此疑问可这样考虑:25x8=200的其中一个0被①算进去了,125x8=1000的一个0被①算进去,另一个被②算进去。

在这里插入图片描述

发布了19 篇原创文章 · 获赞 4 · 访问量 529

猜你喜欢

转载自blog.csdn.net/zhuangww05/article/details/104623955
今日推荐