• 74th LeetCode Weekly Contest Preimage Size of Factorial Zeroes Function


    Let f(x) be the number of zeroes at the end of x!. (Recall that x! = 1 * 2 * 3 * ... * x, and by convention, 0! = 1.)

    For example, f(3) = 0 because 3! = 6 has no zeroes at the end, while f(11) = 2 because 11! = 39916800 has 2 zeroes at the end. Given K, find how many non-negative integers x have the property that f(x) = K.

    Example 1:
    Input: K = 0
    Output: 5
    Explanation: 0!, 1!, 2!, 3!, and 4! end with K = 0 zeroes.
    
    Example 2:
    Input: K = 5
    Output: 0
    Explanation: There is no x such that x! ends in K = 5 zeroes.
    

    Note:

    • K will be an integer in the range [0, 10^9].

    或许都知道N!0的个数是怎么算的,但倒过来呢,但打表发现...答案就0和5两种可能

    我猜是因为规律是除以5造成的吧...

    然后我们二分一下K...

    class Solution
    {
    public:
        int numOfZero(int n){
            int num = 0, i;
            for(i=5; i<=n; i*=5)
            {
                num += n/i;
            }
            return num;
        }
        map<int,int>Mp;
        int preimageSizeFZF(int K){
            int l=K,r=K*10+1;
            while(l<r){
                int mid=l+(r-l)/2;
                if(numOfZero(mid)==K){
                    return 5;
                }else if(numOfZero(mid)<K){
                    l=mid+1;
                }else{
                    r=mid;
                }
            }
             return 0;
        }
    };
  • 相关阅读:
    数据库基础-INDEX
    LINQ教程
    NPOI导出EXCEL
    WPF数据双向绑定
    WPF控件数据单项绑定
    HelloWorld IL代码
    Python基础教程(英文视频教学)
    ado.net的5个主要对象
    Linux学习-0627
    C#中Abstract和Virtual
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/8516276.html
Copyright © 2020-2023  润新知