题目描述:

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

示例 1:

输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:

输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.

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

思路:

在阶乘中,只有乘10,才能在结尾加一个0,由于只有2*5为10,所以只需要统计所有数的质因数中有多少对2,5就好了。不难想,所有偶数都有因数2,并且可能不止一个,但数不一定有质因数5,所以2的数量一定会大于5。即只需要统计所有数有多少个5就好了。那就等于结果尾数0的个数。

代码:
/**
 * @param {number} n
 * @return {number}
 */
var trailingZeroes = function(n) {
            let times = 0;    //计数全局变量
            function fiveTimes(a){   
                 while(a%5===0){     //统计形参a有多少个质因数5
                     times++;
                     a = parseInt(a/5);
                 }
            }
            for(let i=5;i<=n;i+=5){  //遍历5的倍数,取所有质因数5
                fiveTimes(i);
            }
            return times;
       };
运行结果:

在这里插入图片描述

📦 前端资源合集 | 持续更新

🟢 前端0到1【持续更新】→ https://pan.quark.cn/s/5df55ccff7c4

🔵 前端进阶【持续更新】→ https://pan.quark.cn/s/2dec1c87b3ec

🟣 前端2026最新【持续更新】→ https://pan.quark.cn/s/77c8fa94161c

🔴 AI最新学习资料 → https://pan.baidu.com/s/1P9X2Qk_Fby3rFNVGw_WKow?pwd=46XG 提取码:46XG

觉得有用就点个赞+收藏,关注我持续分享前端干货 💡

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐