当前位置: 首页 > article >正文

n!尾随零的数量

给定一个整数 n ,返回 n! 结果中尾随零的数量。

提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1

示例 1:

输入:n = 3
输出:0
解释:3! = 6 ,不含尾随 0

示例 2:

输入:n = 5
输出:1
解释:5! = 120 ,有一个尾随 0

示例 3:

输入:n = 0
输出:0

提示:

  • 0 <= n <= 104

统计因子 5

class Solution {
public:
    int trailingZeroes(int n) {
        int count = 0;
        // 统计 n! 中的因子 5 的个数
        while (n >= 5) {
            n /= 5;
            count += n;
        }
        return count;
    }
};

 基于尾随零的产生机制:每有一个因子 10,就会在数的末尾增加一个尾随零。而 10 可以拆分成 2 * 5,因此我们只需要关注阶乘中有多少对 25 乘积。

在阶乘 n! = n * (n - 1) * ... * 1 中,因子 2 的数量总是比因子 5 的数量多,因为每个偶数都会贡献一个 2。因此,尾随零的数量由因子 5 的数量决定。换句话说,阶乘中有多少个 5,就有多少个尾随零。

直接计算阶乘导致整数溢出,解答错误:

class Solution {
public:
    int trailingZeroes(int n) {
        if(n==0) return 0;
        long long ans=1;
        for(int i=n;i>0;i--){
            ans *=i;
        }
        int f=0;
        while(ans%10==0){
            f++;
            ans/=10;
        }
        return f;
    }
};

 计算阶乘时,数值迅速变得非常大,超出了 long long 类型可以存储的范围。为了避免溢出问题,并不需要实际计算阶乘本身。可以通过直接统计 n! 中有多少个因子 5 来解决问题。


http://www.kler.cn/news/330184.html

相关文章:

  • PHP反射机制
  • 消息队列10:为RabbitMq添加连接池
  • Linux 下 select 详解
  • 微服务实战——平台属性
  • Visual studio2019+PCL1.11.1+win10
  • 畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)
  • 媲美GPT-4o mini的小模型,Meta Llama 3.2模型全面解读!
  • linux桌面软件(wps)内嵌到其他窗口
  • idea环境下vue2升级vue3
  • PHP魔幻(术)方法
  • 【python实操】python小程序之随机抽签以及for循环计算0-x的和
  • 开源链动2+1模式AI智能名片S2B2C商城小程序源码:流量运营中的价值创造与用户影响
  • ListNode
  • 【OpenCV】 Python 图像处理 入门
  • 5G NR物理信道简介
  • mac 上配置Jmeter代理进行web脚本录制过程容易踩坑的点
  • Spring Boot中常用的JSR 380参数校验注解
  • 项目级别的配置文件 `.git/config`||全局配置文件 `~/.gitconfig`
  • Qt --- 界面优化 --- QSS和绘图API
  • ML 系列: (10)— ML 中的不同类型的学习
  • 【rCore OS 开源操作系统】Rust 练习题题解: Enums
  • Nacos 是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,旨在帮助开发者更轻松地构建、部署和管理微服务应用。
  • python单例和工厂模式
  • OpenCV库 详细常见操作
  • Lumerical脚本语言-系统(System)
  • RAG(检索增强生成)新探索:IdentityRAG 提高 RAG 准确性
  • springboot儿童物品共享平台的设计与实现
  • VMware Aria Suite Lifecycle 8.18 发布,新增功能概览
  • Go基础学习10-原子并发包sync.atomic的使用:CSA、Swap、atomic.Value......
  • 基于单片机的两轮直立平衡车的设计