首页 > 其他分享 >793. 阶乘函数后 K 个零

793. 阶乘函数后 K 个零

时间:2022-09-02 21:36:41浏览次数:85  
标签:793 函数 int lo mid long hi 阶乘 return

 

labuladong 题解思路 难度困难

 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


class Solution {
public:
    int trailingZeroes(long n) {
        int cnt = 0;
        while(n>0) {
            cnt += n / 5;
            n = n /5;
        }
        return cnt;
    }
    int left_bound(long k) {
        long lo = 0,hi = 5*k;
        while(lo < hi) {
            long mid = lo + (hi - lo) / 2;
            if (trailingZeroes(mid)<k) {
                lo = mid + 1;
            } else if (trailingZeroes(mid)>k) {
                hi = mid;
            } else {
                hi = mid;
            }
        }
        return lo;
    }
    int right_bound(long k) {
        long lo = 0,hi = 5*k;
        while(lo < hi) {
            long mid = lo + (hi - lo) / 2;
            if (trailingZeroes(mid)<k) {
                lo = mid + 1;
            } else if (trailingZeroes(mid)>k) {
                hi = mid;
            } else {
                lo = mid + 1;
            }
        }
        return lo-1;
    }
  

    int preimageSizeFZF(int k) {      
        if(k==0 || k ==3 ) return 5;
        return right_bound(k) - left_bound(k) +1;
    }
};

 

标签:793,函数,int,lo,mid,long,hi,阶乘,return
From: https://www.cnblogs.com/zle1992/p/16651267.html

相关文章

  • 最小函数值
    P2085最小函数值-洛谷|计算机科学教育新生态(luogu.com.cn)输入系数时同时把x=1的情况入队place[i]代表第i个函数目前应该处理的自然数输出m个,每次循环输出堆顶......
  • UE4 C++学习 UFunction函数说明符
    本文就什么是UFunction?UFunction怎么用?做一个简单的总结UFUNCTION和UPROPERTY一样都为UE4的反射系统服务,要知道什么是反射系统可以看上一个博客:UE4C++学习浅析UProperty......
  • 指针函数和函数指针(C语言)
    @目录指针函数函数指针指针函数指针函数就是指针型函数,该函数返回一个地址。#include<stdio.h>//指针函数*point_fuc()int*point_fuc(inta,intb,int*sum){......
  • react-native 类组件调用函数组件里面的方法
    父组件class类组件,关键代码我用红色部部分标记importReactfrom"react";import{View,Text}from"react-native";importHomeModalChilderfrom"../../compon......
  • php exec 函数执行shell命令,中文参数异常的问题
    exec("/usr/local/bin/wkhtmltopdf--page-sizeA4--footer-font-nameFangSong--footer-line--header-font-size13--footer-font-size9--footer-center[page]--......
  • KingbaseES sys_blocking_pids 函数
    会话出现了锁等待,想要快速查询到堵塞的会话,可以使用sys_blocking_pids函数来实现这一目的。sys_blocking_pids:获取哪些会话阻塞了某个会话(输入参数).sys_backend_pid:......
  • C++ Windows 各种计时函数总结
    本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock......
  • Kotlin:内联函数let、also、with、run、apply
    Let使用方法://作用1:使用it替代object对象去访问其公有的属性&方法object.let{it.todo()}//作用2:判断object为null的操作object?.let{//表示object不为nul......
  • opencv -- reshape()函数
    在opencv中,reshape函数比较有意思,它既可以改变矩阵的通道数,又可以对矩阵元素进行序列化,非常有用的一个函数。函数原型:C++:MatMat::reshape(intcn,introws=0)const......
  • 为什么我要迁移SpringBoot到函数计算
    前言为什么要迁移?我们的业务有很多对外提供服务的RESTfulAPI,并且要执行很多不同的任务,例如同步连锁ERP中的商品信息到美团/饿了么等平台,在线开发票等。由于各种API......