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;
    }
相关推荐
间彧35 分钟前
SimpleDateFormat既然不推荐使用,为什么java 8+中不删除此类
java
间彧41 分钟前
DateTimeFormatter相比SimpleDateFormat在性能上有何差异?
java
间彧1 小时前
为什么说SimpleDateFormat是经典的线程不安全类
java
MacroZheng1 小时前
横空出世!MyBatis-Plus 同款 ES ORM 框架,用起来够优雅!
java·后端·elasticsearch
CoovallyAIHub2 小时前
港大&字节重磅发布DanceGRPO:突破视觉生成RLHF瓶颈,多项任务性能提升超180%!
深度学习·算法·计算机视觉
用户0332126663672 小时前
Java 查找并替换 Excel 中的数据:详细教程
java
间彧2 小时前
ThreadLocal实现原理与应用实践
java
若水不如远方2 小时前
Netty的四种零拷贝机制:深入原理与实战指南
java·netty
用户7493636848432 小时前
【开箱即用】一分钟使用java对接海外大模型gpt等对话模型,实现打字机效果
java
SimonKing2 小时前
一键开启!Spring Boot 的这些「魔法开关」@Enable*,你用对了吗?
java·后端·程序员