给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2:
输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。
/**
* 计算2因子和5因子出现的次数,2肯定比5出现的多,所以只需要计算5出现的次数
* 例如 25! = 5 * ... * (2*5) * ... * (3*5) * ... * (4*5) * ... * (5*5) 一共出现了5次,但是25 = 5 * 5
* 就会少计算一次,同理125 = 5 * 5 * 5,会少计算2次;
* 因此,不能只计算5出现的次数,还需要计算 除以5后的商 里面出现5的次数;
* @param {number} n
* @return {number}
*/
var trailingZeroes = function(n) {
var count = 0;
while(n > 0){
n = Math.floor( n / 5);
count += n;
}
return count;
};