https://leetcode-cn.com/problems/factorial-trailing-zeroes/
描述
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
分析
我们都知道 25 = 10,能让末尾有0的数一定能拆成2或5,能被2整除的数肯定比5的多,所以只需要找能被5整除的数了。
然后25能拆出55,这里需要将目标值循环或者遍历。
/**
* @param {number} n
* @return {number}
*/
var trailingZeroes = function(n) {
let sum = 0
while(n >= 5) {
n = parseInt(n / 5)
sum += n
}
return sum
};
本文探讨了如何高效计算给定整数n的阶乘结果中尾数零的数量,通过分析2和5的倍数关系,提出了一个O(logn)时间复杂度的算法实现。
198

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



