172. 阶乘后的零

内容

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

示例 1:

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

输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。


思路

这道题的思路其实就是找n!里有多少个5,具体为什么可以自己搜网上的解释
10!有10,5,两个5,就是两个0
100!有5,10,15,20,25,。。。95,100 ,从5-》100光看因子左边的5,一共有100/5=20个,然后再看因子右边也会产生5的,25,50,75,100,一共产生4个5,所以一共是20+4=24个5,也就是24个0

那么综合一下思路就是:先找5的倍数,再找55的倍数,再找55*5的倍数,再将这些值都加起来就是0的个数


代码

/**
这道题的思路其实就是找n!里有多少个5,具体为什么可以自己搜网上的解释
10!有10,5,两个5,就是两个0
100!有5,10,15,20,25,。。。95,100 ,从5-》100光看因子左边的5,一共有100/5=20个,然后再看因子右边也会产生5的,25,50,75,100,一共产生4个5,所以一共是20+4=24个5,也就是24个0

那么综合一下思路就是:先找5的倍数,再找5*5的倍数,再找5*5*5的倍数,再将这些值都加起来就是0的个数
 * @param {number} n
 * @return {number}
 */
var trailingZeroes = function (n) {
    var count = 0;
    while (n > 0) {
        n = parseInt(n / 5);
        count += n;
    }

    return count;
};

回到目录

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,675评论 1 19
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,089评论 6 13
  • 特训21天完美结束,过程学到非常多,只要把老师教的这些方法彻彻底底的执行下去,就能做到一个成功的微商者,有些时候,...
    FAB丶花零阅读 1,765评论 0 0
  • 味道,并不都是用嘴去尝的,有些味道,需要我们用心去细细体会,比如说微笑的味道 微笑,是我们每个人天生就具备的,刚出...
    泪犹殇阅读 1,873评论 0 2
  • ES6除了我们熟知的箭头函数,模板字符串,函数声明等,近期在项目中发先了其他几个好用的新功能,总结一下: 1 in...
    小松Fred阅读 3,427评论 0 0

友情链接更多精彩内容