美文网首页
LeetCode每日一题:阶乘结果为0的num个数

LeetCode每日一题:阶乘结果为0的num个数

作者: ShowMeCoding | 来源:发表于2022-08-28 00:45 被阅读0次

793. 阶乘函数后 K 个零

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 的数量。

class Solution:
    def preimageSizeFZF(self, k: int) -> int:
        # 计算任意数num的阶乘结果中 0 的个数
        def check(num):
            count = 0
            while num > 0:
                count += num // 5   # 取余
                num //= 5
            return count
        # 使用二分查找来确定实现等于k的num下界
        low = 0
        high = 10**10   
        while low < high - 1:
            mid = low + (high - low) // 2
            # 偏大向左走
            if check(mid) >= k:
                high = mid
            # 偏小向右走
            else:
                low = mid
        # 找出具体的数字个数(每隔6个数阶乘0的个数必然增加)
        res = 0
        for num in range(low, low+6):
            if check(num) == k:
                res += 1
        return res

相关文章

  • LeetCode每日一题:阶乘结果为0的num个数

    793. 阶乘函数后 K 个零[https://leetcode.cn/problems/preimage-siz...

  • 2018-05-14 172. Factorial Traili

    题意:给你一个数n,输出n的阶乘n!尾端0的个数。解题思路:阶乘结果末端的0是由5 * 2、5 * 4、5 * 偶...

  • 100天代码挑战:DAY7

    LeetCode 338. 比特位计数 给定一个非负整数 num。 对于范围 0 ≤ i ≤ num 中的每个数字...

  • 阶乘后的零

    tag 阶乘后0的个数 题目 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1:输入: 3输出: 0解...

  • 大整数阶乘

    给定一个数,求阶乘,然而这个数的阶乘的结果很大,只能使用 BigInteger 对象来储存

  • N阶乘尾部的0个数

    N阶乘尾部的0个数 描述 设计一个算法,计算出n阶乘中尾部零的个数 思路: 1、1 * 2 * 3 * ... *...

  • LeetCode每日一题:阶乘后的零

    题目分析,一开始我的想法是把阶乘通过for循环相乘,最后对这个相乘的结果求0的个数,但是运行后发现超出时间限制,所...

  • Number of trailing zeros of N!

    这个题目的要求是,给定一个数字n,然后返回n的阶乘的尾数0的长度 一开始想准备用阶乘算出总和,然后通过切割结果,取...

  • 7. 整数反转

    2021-05-03 LeetCode每日一题 链接:https://leetcode-cn.com/proble...

  • 690. 员工的重要性

    2021-05-01 LeetCode 每日一题 链接:https://leetcode-cn.com/probl...

网友评论

      本文标题:LeetCode每日一题:阶乘结果为0的num个数

      本文链接:https://www.haomeiwen.com/subject/kxeqnrtx.html