博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Factorial Trailing Zeroes@LeetCode
阅读量:6679 次
发布时间:2019-06-25

本文共 568 字,大约阅读时间需要 1 分钟。

这道题目并不难,只要知道了诀窍其实很容。

阶乘,或者说乘法,为什么会产生0,就是因为有2和5的存在,那么只要对输入n进行分解,有多少个2和有多少5就能知道最后的数中会有多少个0。进一步简化,简单地根据规律就可以知道质因子2的数量肯定是多余质因子5的,因为每出现一个5,就起码在之前出现了两个2,那么这个问题就简化为求输入n的质因子中有多少个5。

解法:

* 每隔5个数,出现一次5,也就是n / 5
* 每隔25个数,额外出现一次5,也是就是n / 25
* 每隔125个数,额外出现一次5,也就是n / 125
* ……

以此类推,所以代码如下:

javapublic class Solution {    public int trailingZeroes(int n) {        int x = 5;        int result = 0;        while (n >= x) {            result += n / x;            if (x > Integer.MAX_VALUE / 5) {                break;            }            x *= 5;        }        return result;    }}

转载地址:http://ehfao.baihongyu.com/

你可能感兴趣的文章
内容溢出显示省略号
查看>>
二维码(支持arc,苹果自带扫描,zbar扫描,二维码生成)
查看>>
更改matlab默认工作路径
查看>>
[转] EM算法
查看>>
在VS中折叠所有代码或展开所有代码
查看>>
JavaScript 书籍推荐(转)
查看>>
《活法》摘录一
查看>>
C/S和B/S结构区别整理
查看>>
python基础===理解Class的一道题
查看>>
Bootstrap3 概述
查看>>
Django中的APP
查看>>
Adobe:彻底解决Firefox与Flash插件卡顿
查看>>
source insight 使用说明
查看>>
Simplify Path
查看>>
自定义视图中使用自定义变量
查看>>
css3选择器
查看>>
AsyncContext的startAsync()方法开启异步
查看>>
IE6,IE7不支持的十个CSS属性
查看>>
WPF 实现圆形进度条
查看>>
深度学习的杂碎
查看>>