【2022-08-28每日一题】793. 阶乘函数后 K 个零

2022-08-28
1分钟阅读时长

2022-08-28每日一题:793. 阶乘函数后 K 个零

  • 难度:Hard
  • 标签:数学 、 二分查找

 f(x) 是 x! 末尾是 0 的数量。回想一下 x! = 1 * 2 * 3 * ... * x,且 0! = 1 。

  • 例如, f(3) = 0 ,因为 3! = 6 的末尾没有 0 ;而 f(11) = 2 ,因为 11!= 39916800 末端有 2 个 0 。

给定 k,找出返回能满足 f(x) = k 的非负整数 x 的数量。

 

示例 1:

输入:k = 0
输出:5
解释:0!, 1!, 2!, 3!, 和 4! 均符合 k = 0 的条件。

示例 2:

输入:k = 5
输出:0
解释:没有匹配到这样的 x!,符合 k = 5 的条件。

示例 3:

输入: k = 3
输出: 5

 

提示:

  • 0 <= k <= 109

暂未吸收的题解

func zeta(n int) (res int) {
    for n > 0 {
        n /= 5
        res += n
    }
    return
}

func nx(k int) int {
    return sort.Search(5*k, func(x int) bool { return zeta(x) >= k })
}

func preimageSizeFZF(k int) int {
    return nx(k+1) - nx(k)
}

LeetCode题库地址