Given an integer n, return the number of trailing zeroes in n!.
Example 1:
Input: 3 Output: 0 Explanation: 3! = 6, no trailing zero.
Example 2:
Input: 5 Output: 1 Explanation: 5! = 120, one trailing zero.
Note: Your solution should be in logarithmic time complexity.
解决思路:
2的数量肯定比5要多,所以只需要找出5的个数即可。
/**
* @param {number} n
* @return {number}
*/
var trailingZeroes = function(n) {
let count = 0, x = 5;
while (x < n) {
count += n / x;
x *= 5;
}
return count;
};
本文介绍了一种高效算法,用于计算给定整数n的阶乘中尾随零的数量。通过分析,发现只需计算5的因子数量即可,因为2的因子总是更充裕。文章提供了一个基于此原理的代码实现,其时间复杂度为对数级。
1246

被折叠的 条评论
为什么被折叠?



