Leetcode面试经典150题-172.阶乘后的零

给定一个整数 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行,直接上代码了,不理解的直接私信或者评论,看到后第一时间解答

java 复制代码
class Solution {
    /**阶乘里的0一定是5的倍数产生的,比如5,10,15等
    如果出现了5的2次方则增加1次(它需要乘以2个2才能获得两个0,作为5的倍数已经算了一次了)
    出现了5的3次方则再增加1次(它需要乘以3个2才能获得3个0,作为5和25的时候已经分别计算过一次了) 
    5的倍数和2的倍数相乘就可以成为10的倍数,也就是结尾为0
    1~n中2的倍数出现的次数肯定远大于5的倍数出现的次数*/
    public int trailingZeroes(int n) {
        int ans = 0;
        while(n != 0) {
            /**第一次进来有多少个5的倍数算多少个
            第二次进来有多少个25的倍数,再加一遍
            第三次进来有多少个125的倍数,再加一遍 */
            int num = n / 5;
            ans += num;
            /**每次除以5实现先算5再算25再算125再算625.。。。 */
            n = n / 5;
        }
        return ans;
    }
}
相关推荐
掘根4 分钟前
【仿Muduo库项目】EventLoop模块
java·开发语言
天天进步20158 分钟前
KrillinAI 源码级深度拆解二:时间轴的艺术:深入 KrillinAI 的字幕对齐与音频切分算法
算法·音视频
信码由缰9 分钟前
Java 中的 AI 与机器学习:TensorFlow、DJL 与企业级 AI
java
爱编程的小吴10 分钟前
【力扣练习题】121. 买卖股票的最佳时机
算法·leetcode·职场和发展
生信大杂烩12 分钟前
空间转录组分析新工具 | MEcell:自适应微环境感知建模,精准解析细胞身份!
算法·数据分析
kaikaile199518 分钟前
计算向量x的功率谱密度
算法
ADI_OP23 分钟前
ADAU1452的开发教程3:常规音频算法的开发(1)
算法·音视频·adi dsp中文资料·adi dsp开发教程
꧁Q༒ོγ꧂28 分钟前
算法详解(三)--递归与分治
开发语言·c++·算法·排序算法
沙子迷了蜗牛眼32 分钟前
当展示列表使用 URL.createObjectURL 的创建临时图片、视频无法加载问题
java·前端·javascript·vue.js
ganshenml34 分钟前
【Android】 开发四角版本全解析:AS、AGP、Gradle 与 JDK 的配套关系
android·java·开发语言