这题要完成其实要知道一个很巧妙的思想,就是阶乘里面,后面的几个零是由什么来决定的。
只有知道了这个,才能够在足够小的时间复杂度中得到答案。
其实乘法里面,末尾有0意味着因子中肯定有10,而10的质因子,就是52,所以,我们要看末尾有没有5,为啥直接看阶乘中的数字的包含的5的质因子的总数就可以了?不用看2的么?主要是5比2大,如果有5的质因数,那么肯定比如包含2,比如5!:aaarticlea/png;base64,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" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;" alt="" />,仔细观察,5的阶乘中5的总数只有1个,但是2的总数有3个。所以我们直接看5的数量就可以了。

5 : 1
10 : 2
15 : 3
20 : 4
25 : 6
30 : 7
35 : 8
40 : 9
45 : 10
50 : 12
……

那么这里你肯定发现了一个问题,就是为啥在25的时候一次洗由4加到了6?其实究其原因就是,我们之前一直在找aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAiCAYAAAAzrKu4AAAC3ElEQVRYR+2WP0hyURjGH1E0CaxAwSSKiFYJGsIQIbRB+kdFDmIWLW5BkJGBjpG0VUtj1BCFYFDUkBUF4VqLWKBEWrQogaIJ6sd7wI+u//ouLvFx73a5z3nPc37neV+uqFgsFvELH5FgjOetCMR4AoNATCDGlwBfvZCx/5fY5+cnDg8P8fDwgGQyibGxMUxPT0Mmk/E9dIWeaicSCXR0dEAikSAej+P6+hozMzNoamri6DkZy2azzNTo6CiUSiXe39/hdruh1+sxOzsLsVjckLmXlxc4nU58fHywOlRveXkZZrMZIpGotjFauLq6isnJSVgsFibc39/Hzc0NNjY2oFKpGja2tbWFVCqF9vZ2WK1W9Pb2VpiiTTjE6Oq2t7cxODgIk8nETJydnWFvbw+bm5vo6uqqaqxQKIBoy+XyqpuUFtHBI5EIhoaGfjxg3XGRz+exs7ODcDiM9fV1tLa2Vi1I2SESi4uLaGlpqbkpGbu9vWURIYNEzeFwQK1WV6ypa+zp6Qlra2tYWFiomoP7+3uEQiGMjIzg+PiYXY3f70dfXx/6+/srNovFYggGgxgfH4dUKkUgEMDp6Sk8Hg/a2tpqZ+z7F8qB1+tFT09PzeB/fX0xArRBOp1Gc3MzjEYjDAbDP3VxqRmWlpag0+l+NpbJZFjWOjs7WSvX6kb6K49Gozg4OMDj4yO0Wi1sNhu6u7srskaxODo6Ah2GyBKxkrG5uTlG/ftTcZVUgDqR5krJFOEnkxqNhrP47u4OFxcXmJ+fx9XVFYaHh7G7u4upqSkMDAxwtNQc1EA0v4gQ1adDuVwu9l6u5xgjAufn53h9ff1rijqOcjAxMQGFQtFQ+C8vL1mWKH9U1+fz4fn5mRmjjq5JjAytrKzg7e2NI6LRQYOxfDqXRESZgk0Tvd4QzuVyODk5ARkkY3T1dru9aicLfxc/TtQygUBMIMaXAF+9kDGBGF8CfPW/NmN/ALq1sKogcKa1AAAAAElFTkSuQmCC" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;" alt="" />的数量,但是aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAiCAYAAAAge+tMAAADUklEQVRYR+2WSyh8YRjGn4lcooRilJIFGyWRho2SLKQsyEZCEjsysUCNpeSysBlSVlZERLkTpmFDUi5RhnIJRUQuxfx73hq5nDNn/nVS6pzd6bzf+z3v73uf9zsmt9vtxh98TIbwXz41g/gvA4dB3CDuIwGjVXwEpVuYQVw3lD4m8kr8/v4e/f39qKqqQlhYmI8p1cPe3t6wsLCAqakpXF1dITExETU1NTCbzbLo7u4ONzc3iI2Nhb+/P87OzrC0tITi4mIEBQV9SawqnP9eo6OjmJubQ3t7uy7C5+fnJU96ejpeX19ht9txfHwMm82G8PBwnJycoLGxEZeXlyLSz88PDQ0NyMvLg8lk8k04k3R1dckGegh/fn5GR0cHnp6e0NzcjNDQUOzu7sJqtaK1tRWZmZkivKenBw8PD4iJiUFJSQkSEhJ+iGYFisQpdmRkBFFRURgeHtYU/v7+DgoLDg5W3IQbsU2GhoZwfX2N6upqOXoP4fLycuTn58v70dERsrOzNdtSUfja2pospJDe3l5N4exNkqqtrf2vluI+LS0t6O7uRkpKighfWVnBxcWFFEDqnz3wuZofwm9vbzE9PY2ioiI5Sm/CnU4n9vb2hBZPhkc7NjYmItLS0rxSYzu0tbUhJCQE9fX1Aun09BTr6+soKChAQECAGHlycvLDA6rCaUg6PikpCXFxcdja2vIq/OXlRQhxg8fHRxGRk5ODrKwsBAYGqgr3GJ/Em5qaEBkZqRjraSUWRg+oCmfgzs7Oh4u1hFOAy+XC4OAgtre3kZycjNLSUsTHx6v2OtfMzs7C4XCIMTlNPnuAMHhyJP7dA6rCl5eXwZHFRXw4Uw8ODpCamirtkJGR8aXq1dVVaauKigosLi4iNzcXfX19KCwshMViUaS4sbGBiYkJ1NXViWi2x/n5uRTNqcP5TcI0L6HwRPj+PZ/XC0iLuEeZr+akkIGBAVRWViIiIkKWb25uSqtQOKGxGPqDk4qT7fDw8MMDXs3Jj7wx6fT9/X254djvZWVlqmOKo47keOPx0lB6OGI7OzsxMzPz5XN0dLSQ5h6MGR8flwIonMVwX6Vb2/jJ0rwxdA4wiOsMVDOdQVwTkc4BBnGdgWqmM4hrItI54M8S/wfCKBy5nI+LuQAAAABJRU5ErkJggg==" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;" alt="" /> 也可做到后面有0。所以这里就多出了一个5的质因子的总数,因为25也是要分解成aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAiCAYAAAAzrKu4AAAC2klEQVRYR+2WP0hyURjGH1EsdRDLyCAQhVYJgiIEKTIkgqDIRbTc3IKgIBeniLAhCBxsC5oU08igQAsUQpykpSFIikQEUcSC/lB+vIfPD/VmeGmJj3vAQe5z3vu8v/O8R0W1Wq2GX7hEgjGepyIQ4wkMAjGBGF8CfPVCxv5fYg8PD5DJZOjt7QX9jKbTaby8vGBycpJv0xx9pVJBqVTC4OAgJBIJcrkcLi8vYbVa0d3d3aTnZOz09BRer/efiIpsbm5Cp9P92Nj9/T3W19dRKBRYLbFYjLW1NczMzEAkEn1v7Pz8HOFwmNEaHR3F/Pw8enp6fmyKCpCxvb09PD09YWBgADabDUNDQxxTpOUQI7R6vR5arbZjM5+fn+y4KQKtnTcWIWN3d3cdxYJj7OLigqHOZDIsDxMTE1hcXERXV1dbo5QdIrGysgKlUtlWR8YSiQTy+TwzSNRcLhc0Gg1nD8cYbZTL5RgZGcH7+zt2d3fR398Ph8PBMtG4rq6ucHNzg9nZWQSDQXY0kUgEw8PDbH/renx8RCqVwtzcHKRSKeLxOKLRKDweD1Qq1fcZay1Gw3B0dITt7W309fU1PX59fWUE6AXPz89QKBSYmpqCyWT6lnC9SH0YVldXMT4+3t5YuVyGz+djxetCMnZwcICdnR1O7mhAstksDg8PcX19DYPBALvdzia4NWsfHx8IBAKgZogsEasbW15eZtQbV9NRknBjYwNOpxMWi4XpTk5O2GdrawtqtbppczKZxNnZGdNTNqenp+H3+7GwsICxsbEmLQ0HNUf3FxGie4uacrvd7HurvskYbaauyD1dsNVqlR2h0Wj88q6pv7nT8MdiMZYlyh9NcigUwu3tLTNGE92WGD0oFovY399nmGlR92azmRP8xiJ0TBRsuoxbB6RR9/b2huPjY5BBMkZHv7S09OUkC/8uOr6t/woFYgIxvgT46oWMCcT4EuCr/7UZ+wNyv6qqzAl0dgAAAABJRU5ErkJggg==" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;" alt="" />。
我们来看看代码:

Show the code

1public int trailingZeroes(int n) {
2    int res = 0;
3    while (n >= 5) {
4        res += n / 5;
5        n = n / 5;
6    }
7    return res;
8}

这是个循环累加的过程,所以,如果出现了25,125, 625……就是要不断的分解成5的质因数的总数。

172. 阶乘后的零 Java解法的更多相关文章

  1. Java实现 LeetCode 172 阶乘后的零

    172. 阶乘后的零 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零. 示例 2: 输入: 5 输出: 1 解释: 5! ...

  2. LeetCode 172. 阶乘后的零(Factorial Trailing Zeroes)

    172. 阶乘后的零 172. Factorial Trailing Zeroes 题目描述 给定一个整数 n,返回 n! 结果尾数中零的数量. LeetCode172. Factorial Trai ...

  3. Leetcode 172.阶乘后的零

    阶乘后的零 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零. 示例 2: 输入: 5 输出: 1 解释: 5! = 120 ...

  4. leetcode刷题笔记172 阶乘后的零

    题目描述: 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例1: 输入: 输出: 解释: ! = , 尾数中没有零. 示例2: 输入: 输出: 解释: ! = , 尾数中有 个零. 说明: 你 ...

  5. 【每天一题】LeetCode 172. 阶乘后的零

    开源地址:点击该链接 题目描述 https://leetcode-cn.com/problems/factorial-trailing-zeroes 给定一个整数 n,返回 n! 结果尾数中零的数量. ...

  6. 每日一道 LeetCode (41):阶乘后的零

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  7. LeetCode. 阶乘后的零

    题目要求: 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零. 解法: class Solution { public: int ...

  8. 172 Factorial Trailing Zeroes 阶乘后的零

    给定一个整数 n,返回 n! 结果尾数中零的数量.注意: 你的解决方案应为对数时间复杂度. 详见:https://leetcode.com/problems/factorial-trailing-ze ...

  9. LeetCode 172:阶乘后的零

    给定一个整数 n, 返回 n! 结果中尾数为零的数量. 示例 : 输入: 输出: 解释: ! = , 尾数中没有零. 示例 : 输入: 输出: 解释: ! = , 尾数中有个零. 说明:算法的时间复杂 ...

随机推荐

  1. springmvc拦截请求

    springmvc.xml <!--拦截请求 --> <mvc:interceptors> <mvc:interceptor> <!-- 要拦截的请求类型 / ...

  2. 原创-使用pywinauto进行dotnet的winform程序控制(一)

    pywinauto自动化控制win32的ui的程序,网上有好多的教程.但是操作dotnet写的winform教程,就少之又少.今天我就来分享我的pywinauto操作dotnet的winform的研究 ...

  3. Go语言之从0到1实现一个简单的Redis连接池

    Go语言之从0到1实现一个简单的Redis连接池 前言 最近学习了一些Go语言开发相关内容,但是苦于手头没有可以练手的项目,学的时候理解不清楚,学过容易忘. 结合之前组内分享时学到的Redis相关知识 ...

  4. 给VS设置代码创建人的宏

    Sub AddFunComment() Dim DocSel As EnvDTE.TextSelection DocSel = DTE.ActiveDocument.Selection DocSel. ...

  5. python算法与数据结构-二叉树的代码实现(46)

    一.二叉树回忆 上一篇我们对数据结构中常用的树做了介绍,本篇博客主要以二叉树为例,讲解一下树的数据结构和代码实现.回顾二叉树:二叉树是每个节点最多有两个子树的树结构.通常子树被称作“左子树”(left ...

  6. React躬行记(6)——事件

    React在原生事件的基础上,重新设计了一套跨浏览器的合成事件(SyntheticEvent),在事件传播.注册方式.事件对象等多个方面都做了特别的处理. 一.注册事件 合成事件采用声明式的注册方式, ...

  7. shell 循环打印某一天后的n天的日期

    #!/bin/bash start_date="2017-10-26" for i in `seq 0 30` do num=$((${i}+1)) datatime=`date ...

  8. RocketMQ与MYSQL事务消息整合

    1.基础理论知识篇“两阶段提交”如果你了解可以跳过这段,当然如果你想深入了解你可以购买相关书籍或去搜索相关资料阅读 两阶段提交分为 正常提交和异常提交或异常回滚 上面是正常提交的示意图,协调者发起预提 ...

  9. Spring Framework 条件装配 之 @Conditional

    Spring Framework 条件装配 之 @Conditional 前言 了解SpringBoot的小伙伴对Conditional注解一定不会陌生,在SpringBoot项目中,Conditio ...

  10. 使用SSH+SFTP操作终端全解析,告别XShell

    1.前言 在Windows系统下操作远程服务器的方式很多,比如XShell+XFTP组合,亦或是PuTTY+WinSCP组合,但在Mac系统下登陆远程服务器,并没有这些工具供我们使用.相比较而言,在M ...