Factorial Trailing Zeroes
Description
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.
Solution(javascript)
// /** 1: Brute Force
// * @param {number} n
// * @return {number}
// */
// const trailingZeroes = function (n) {
// let zeros = 0
// let result = BigInt(1)
// for (let i = 2; i <= n; i++) {
// result *= BigInt(i)
// }
// while (result % (BigInt(10)) === BigInt(0)) {
// zeros += 1
// result /= (BigInt(10))
// }
// return zeros
// }
/** 2: 算 5 的个数
* @param {number} n
* @return {number}
*/
const trailingZeroes = function (n) {
const count = (x) => {
if (x <= 1) {
return 0
}
return Math.floor(x / 5) + count(Math.floor(x / 5))
}
return count(n)
}