阶乘后的零-简单


难度:简单

题目描述:
给定一个整数  n,返回  n! 结果尾数中零的数量。

示例:

输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
1
2
3


解题思路:
计算有多少个 5 即可
循环:

var trailingZeroes = function (n) {
  let total = 0;
  while (n >= 5) {
    n = Math.floor(n / 5);
    total += n;
  }
  return total;
};
1
2
3
4
5
6
7
8


尾递归优化:

"use strict";
const trailingZeroes = (n) => {
  const helper = (n, total) => {
    if (n < 5) {
      return total;
    }
    const count = Math.floor(n / 5);
    return helper(count, total + count);
  };
  return helper(n, 0);
};
1
2
3
4
5
6
7
8
9
10
11
最后更新时间: 5/19/2020, 9:19:24 PM