172. 阶乘后的零

https://leetcode.cn/problems/factorial-trailing-zeroes/description/?envType=study-plan-v2&envId=top-interview-150

只有2 * 5才会产生0,所以我们只要统计2和5的对数就行,因为2的数量一定大于5的数量,所以决定0个数的是5的数量。

java 复制代码
    public int trailingZeroes(int n) {
        int fiveNum = 0;
        for(int i = 5; i <= n; i += 5) {
            int num = i;
            while (num % 5 == 0) {
                num /= 5;
                fiveNum++;
            }
        }
        return fiveNum;
    }

O(n)的实现,我们知道只要考虑能拆出的5的数量就可,而n/5得到的就是当前n中第一次能拆出的5的数量;n/25得到的就是当前n中第二次能拆出的5的数量,以此类推直到拆不出5为止。

java 复制代码
    public int trailingZeroes2(int n) {
        int fiveNum = 0;
        while (n >= 5) {
            n /= 5;
            fiveNum += n;
        }
        return fiveNum;
    }
相关推荐
jz_ddk3 分钟前
[学习] 哈希码:原理、用途与实现详解(C代码示例)
c语言·学习·算法·哈希算法
AndrewHZ14 分钟前
【Python与生活】如何实现一个条形码检测算法?
人工智能·pytorch·python·深度学习·算法·生活
技术猿1887027835142 分钟前
Java、PHP、C++ 三种语言实现爬虫的核心技术对比与示例
java·c++·php
韩占康1 小时前
没想到Java ThreadLocal 知识点居然这么多
java
用户590336360591 小时前
Aware"感知"接口
java
小码编匠1 小时前
基于 SpringBoot 开源智碳能源管理系统(EMS),赋能企业节能减排与碳管理
java·后端·开源
GG不是gg1 小时前
一文详解归并分治算法
算法
booooooty1 小时前
【Java项目设计】基于Springboot+Vue的OA办公自动化系统
java·vue.js·spring boot·毕业设计·课程设计·程序开发
白云如幻1 小时前
【Java】HQL分页查询
java·hibernate
小猫咪怎么会有坏心思呢2 小时前
华为OD机考-观看文艺汇演问题-区间问题(JAVA 2025B卷)
java·jvm