2×4×6×8×...×2008的积的末尾有多少个连续的0?

来源:百度知道 编辑:UC知道 时间:2024/06/05 12:49:03

相乘有0的只有末尾是0的数相乘才有,在2~2008中有10、20、30……、100、200、300……1000、1100、1200……1990、2000。一共有200个数末尾含有0.

其中3个0的有2个:1000、2000
2个0的有18个:100、200、300……900、1100、1200……1800、1900.
1个0的有:200-2-18=180个
所以共有:3*2+2*18+1*180=222个

看得懂吧,供参考!

假设,一个数末尾有 n 个 0,那么这个数可以写成 a * 10^n

则上述问题可以转化为 求 n 的数目

而10 = 2 * 5,即 10 由 2 和 5 这两个质因子的乘积而得
由此可以看出,含有 10 的数目 = min(含有 2 的数目, 含有 5 的数目),也就是含有 2 的数目 和 含有 5 的数目 两者间的最小值

题目中,乘数都是偶数,所以显然,2的数目一定大于5的数目,则 n = 含有 5 的数目

将每一个乘数除以 2 ,则原式 = 1 * 2 * ... * 1004

所以,含有 5 这个因子的数目 = floor(1004 / 5) + floor(1004 / 25) + floor(1004 / 125) + floor(1004 / 625)

其中,floor(n) 表示不大于n的最小正整数,即floor(6.25) = floor(6) = 6

解释:
1)1004 / 5 表示每连续 5 个数就会有一个包含 5 这个因子的数
2)1004 / 25 表示每连续 25 个数就会有一个包含 25 这个因子的数,而25 = 5 ^ 2,所以这些数在1)中仅被统计一次,而真是情况是应该被统计两次
3)4)同理

2008/10=200
2008/100=20
2008/1000=2
200+20+2=222

201吧

201