n!后面有多少个0:阶乘末尾一个零表示进位,相当于是乘以10,而10=2*5
,所以可以产生10的有以0,2,4,5,6,8结尾的数字。这里2是足够的,关键是5的个数。
n=10000时,
- 可分解产生一个数字5的个数:2000 * 5 =10000,2000个;
- 可分解产生两个数字5的个数:400 * (5 * 5) = 10000,400个;
- 可分解产生三个数字5的个数:80 * (5 * 5 * 5) = 10000,80个;
- 可分解产生四个数字5的个数:16 * (5 * 5 * 5 * 5) = 10000,16个;
- 可分解产生五个数字5的个数:3 * (5 * 5 * 5 * 5 * 5) + 1 = 10000,3个;
1到10000所有数字中一共可以分解产生2000 + 400 + 80 + 16 + 3 = 2499个数字5,即10000!中包含2499个零!
或者另一种方式:
10000/5=2000 有2000个能被5整除
2000/5=400 这2000个里面能被5整除有400个(2000个已被5除过1次。能除第二次的有400)
400/5=80 同理 80个
80/5=16 同理 16个
16/5=3余1 同理 3个
结果2000+400+80+16+3=2499