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)
}