题目
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 :
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
注意点
1、计算一个阶乘结尾有多少个0,只需要知道乘多少个10;(没乘一个10,末尾多一个0)
2、10 = 2 * 5,所以我们需要计算有多少个2*5的组合;
3、5!= 1 * 2 * 3 * 4 * 5,可得,出现一个5(或因子为5)之前,必定出现一个2(或因子为2),所以我们只需要计算阶乘中出现多少个5;
4、出现5的规律:
- 每5(51)个出现1个5;
- 每25(52)个多出1个5;(例如:25=5*5,又两个5组成)
- 每125(53)个多出2个5;(例如:125=555,又三个5组成)
- …
5、则n!= n/5 + n/25 + … + n/5m (n/5m >= 1)。
实现
p