LeetCode 793. 阶乘函数后 K 个零

news2024/9/20 19:44:59

 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 <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/preimage-size-of-factorial-zeroes-function
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这个题简单的一匹。。

主要就是要想清楚如何统计n!的末尾0个数

因为:n!=1\times 2\times 3\times ...\times n

而末尾的0显然由2*5得到,而一个阶乘运算中,2要比5多得多,所以只需要统计这个n的阶乘能提供多少个5就可以了

最后注意,像25是能提供两个5的,因为25=5*5,这也是为什么题目中会有0解的存在

而对于非0解,那答案就是5,因为至少要5个数之后才会在遇到一个带因子5的数,末尾0个数才会改变。

最后,我们先写一个函数计算末尾0个数,然后二分查找一下有没有f(x)刚好是k,如果没有就返0,有就返回5

class Solution
{
    private long zeroCount(long n)
    {
        long zero=0;
        while(n>0)
        {
            zero=zero+n/5;
            n=n/5;
        }
        return zero;
    }

    public int preimageSizeFZF(int k)
    {
        long left=0,right=(long)5*k,mid;
        while(left<=right)
        {
            mid=(left+right)/2;
            long c=this.zeroCount(mid);
            if(c>k)
                right=mid-1;
            else if(c<k)
                left=mid+1;
            else
                return 5;
        }
        return 0;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django框架之类视图

类视图 思考&#xff1a;一个视图&#xff0c;是否可以处理两种逻辑&#xff1f;比如get和post请求逻辑。 如何在一个视图中处理get和post请求 注册视图处理get和post请求 以函数的方式定义的视图称为函数视图&#xff0c;函数视图便于理解。但是遇到一个视图对应的路径提供…

【Vue/基础知识】Vue基础知识(一)

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注 【Vue/基础知识】Vue基础知识&#xff08;一&#xff09; 1、v-show 和 v-if 指令的共同点和不同点&#xff1f; 共…

【建议收藏】2023年最新最全PMP 报考条件和流程在这里!

PMP考试是由美国项目管理协会PMI发起的项目管理专业人士资格认证考试&#xff0c;在中国国内由中国国际人才交流基金会举办考试&#xff0c;考生在报名参加PMP考试前了解下PMP考试报名条件和流程是必须要做的功课&#xff0c;下面我为大家详细介绍2023年PMP考试报名条件和流程&…

音频信号处理笔记(二)

文章目录1.1.3 过零率1.1.4 谱质心和子带带宽1.1.5 短时傅里叶分析法1.1.6 小波变换相关课程&#xff1a; 音频信号处理及深度学习教程傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 - 知乎 (zhihu.com)1.1.3 过零率 过零率&#xff1a;是一个信号符号…

[软件工程导论(第六版)]第7章 实现(复习笔记)

文章目录7.1 编码7.2 软件测试基础7.2.1 软件测试的目标7.2.2 软件测试的准则7.2.3 测试方法7.2.4 测试步骤7.2.5 测试阶段的信息流7.3 单元测试&#xff08;模块测试&#xff09;7.4 集成测试7.5 确认测试&#xff08;验收测试&#xff09;7.6 白盒测试技术7.7 黑盒测试技术7.…

微型光纤光谱仪的光路性能指标

标题光路指标波长范围灵敏度分辨率&#xff08;波长&#xff09;波长准确度与波长重复性光路稳定性杂散光与二级衍射效应光路指标 波长范围 对于微型光纤光谱仪来说&#xff0c;波长范围的概念有两个层面&#xff1a; 由灵敏度所限制的范围&#xff08;Useable range&#xf…

python学习之10行代码制作炫酷的词云图(匹配指定图形形状)

文章目录前言一、需要准备什么&#xff1f;二、代码实现&#xff08;示例&#xff09;三、读入数据四、结果展示五、修改词云颜色后的运行结果展示&#xff1a;总结前言 想必大家有一个问题&#xff1a;什么是词云呢&#xff1f; 词云又叫名字云&#xff0c;是对文本数据中出…

java调用elasticSearch api

java操作es有两种方式 通过操作es的9300端口&#xff0c;9300是tcp端口&#xff0c;集群节点之间通信也是通过9300端口&#xff0c;会通过9300和es建立一个长连接&#xff0c;下面的es的依赖可以直接操作 但是随着es的版本的提升spring-data需要封装不同版本的es的jar包&#x…

Windows命令大全

Windows命令大全命令简介运行流程CMD命令—文件管理CMD命令—磁盘管理CMD命令—系统管理CMD命令—进程管理CMD命令—控制台管理CMD命令—其他管理Windows运行工具操作示例命令简介 CMD命令是一种命令提示符&#xff0c;CMD是command的缩写&#xff0c;即命令提示符&#xff08…

QT(57)-QWT+VS2019+QT5.12.4环境配置-x86

1.下载QWT源码。 2.用VS2019-MSVC2019编译生成6个文件。 3.配置6个文件&#xff0c;把6个文件放对应的目录下。 4. 用自带的example检测配置环境。 1.下载QWT源码 Qwt Users Guide: Qwt - Qt Widgets for Technical Applications2.用VS2019-MSVC2019编译生成6个文件. #qw…

测试工程师如何提高自动化测试覆盖率

前言 自动化测试一直是测试人员的核心技能&#xff0c;也是测试的重要手段之一。尤其是在今年所谓的互联网寒冬的行情下&#xff0c;各大企业对测试人员的技术水平要求的很高&#xff0c;而测试人员的技术水平主要集中在三大自动化测试领域&#xff0c;再加测试辅助脚本的编写…

350-401-补充

补充 拖图 Cloud和On-Premise&#xff1b; Cloud&#xff1a; easy to scale the capacity up and down highly agile On-Premises&#xff1a; infrstructure requires large and regular investments highly customizable 云: 易于扩大和缩小容量 非常敏捷 本地: 基础设施…

nodejs基于vue 网上商城购物系统

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2. 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可行…

15 个杀手级 你可能从未听说过的 JS 技术

我们都同意&#xff0c;在 Google 或 StackOverflow 上搜索 Javascript 错误修复或答案并不有趣&#x1f3f4;‍☠️。这里有 20 种简短而强大的 JavaScript 技术&#xff0c;它们可以最大限度地提高生产力 ⚡ 并最大限度地减少痛苦 &#x1fa78;。让我们深入研究代码&#x1…

人们最想看到的是:你在坚持什么?

【人们最想看到的是&#xff1a;你在坚持什么】 长远规划才能对抗不确定性 品牌也能够对抗不确定性 想想这么多年东搞搞&#xff0c;西搞搞 最后缺乏正向积累的【厚度】 趣讲大白话&#xff1a;把每滴水尽量接到碗里 人吃的是饭&#xff0c;拉出来的是信息 *********** 人们在频…

大数据周会-本周学习内容总结0102

目录 01、ElasticSearch-学习总结 02、SpringbootElasticSearch构建博客检索系统 01、将MySQL数据同步到ES中 02、SpringBoot集成ES 03、本周学习计划 第一次周会 大数据总监、搜狐四年-中国搜索 【mapReduce】sql 大数据代表&#xff1a;Hadoop、spark、es、flink zookee…

写给安徽合肥高三的你——少年不惧岁月长,敢挽桑弓射玉衡

文章目录说说我的看法英雄不论出处想帮帮你做科研&#xff0c;拼出个锦绣前程&#xff0c;朗朗乾坤&#xff01;我能做的可能很少&#xff0c;可是全世界都会为你让路说说我的看法 在今日头条看到你&#xff0c; 仿佛看到了年轻时候自己的影子&#xff0c;虽然自己现在在读研已…

PHP面向对象02:面向对象高级

PHP面向对象02&#xff1a;面向对象高级一、设计模式1. 单例模式2. 工厂模式二、面向对象三大特性1. 封装2. 继承3. 多态三、继承1. 实现继承2. 有限继承a. 属性都能继承b. 公有方法c. 受保护的方法d. 静态成员3. 重写4. PHP继承特点5. 静态延迟绑定6. 最终类和最终方法7. 抽象…

真空度精密控制技术在液相透射电子显微镜液体厚度调节中的应用

摘要&#xff1a;为了实现液相电子显微镜的更广泛和更便捷应用&#xff0c;需要对微芯片中的液体样本厚度进行精密调控。本文基于透射显微镜中被检液体样本内外压差对应于液体厚度这一凸起变形膨胀的基本现象&#xff0c;提出了通过精确控制液体池内部真空度来实现液体厚度精密…

【大数据离线开发】7.4 HBase数据保存和过滤器

7.4 数据保存的过程 注意&#xff1a;数据的存储&#xff0c;都需要注意Region的分裂 HDFS&#xff1a;数据的平衡 ——> 数据的移动&#xff08;拷贝&#xff09;HBase&#xff1a;数据越来越多 ——> Region的分裂 ——> 数据的移动&#xff08;拷贝&#xff09; …