这题要完成其实要知道一个很巧妙的思想,就是阶乘里面,后面的几个零是由什么来决定的。
只有知道了这个,才能够在足够小的时间复杂度中得到答案。
其实乘法里面,末尾有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. 基于ASP.NET的新闻管理系统(一)

    1. 项目简介 1.1设计内容 (1)可以在首页查看各类新闻,可以点击新闻查看具体内容:可以查看不同类型的新闻,并了解热点新闻,可以在搜索框里输入要查找的内容. (2)在后台界面中,管理员可以修改密码 ...

  2. SpringBoot实现文件上传

    前言参考:快速开发第一个SpringBoot应用 这篇文章会讲解如何使用SpringBoot完成一个文件上传的过程,并且附带一些SpringBoot开发中需要注意的地方 首先我们写一个文件上传的htm ...

  3. Markdown教程<3> 数学公式(1)

    # Markdown教程<3> 数学公式(1) 1.如何在markdown中使用公式 公式分为行内公式与行间公式,其中: 行内公式使用$ 数学公式 $ 行间公式使用$$ 数学公式 $$ 2 ...

  4. WebRTC开发者必备 | 《WebRTC1.0: 浏览器间实时通讯》中文版免费下载

    随着移动互联网的崛起与完善,WebRTC的应用场景相较于它刚诞生时已经有了极大的变化,以图片和视频为代表的流媒体技术走向普及,交互式网站也逐渐成为互联网的新常态,因此WebRTC API应该把当前以及 ...

  5. [Vue 牛刀小试]:第十四章 - 编程式导航与实现组件与 Vue Router 之间的解耦

    一.前言 在上一章的学习中,通过举例说明,我们了解了 Vue Router 中命名路由.命名视图的使用方法,以及如何通过 query 查询参数传参,或者是采用 param 传参的方式实现路由间的参数传 ...

  6. java多线程死锁

    进程(线程)同步的基本概念 进程之间的制约关系 1. 直接制约关系(进程同步) 这个关系主要源于进程合作,例如,有一个输入进程A通过单缓冲向进程B提供数据,当该缓冲空时,进程B因为不能获得所需数据而被 ...

  7. PATA 1009. Product of Polynomials (25)

    1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...

  8. Appium+python自动化(十三)- 与Capability完美懈垢之解读(超详解)

    简介 Capability又叫Appium Desired Capabilities,前边写了那么多实例代码,小伙伴可以发现一些规律,就是有一部分代码总是重复的出现在你的视线中.这部分就是对Capab ...

  9. lower_bound 和 upper_bound 功能和用法

    以前用这两个函数的时候,简单看了几句别人的博客,记住了大概,用的时候每用一次就弄混一次,相当难受,今天对照着这两个函数的源码和自己的尝试发现:其实这两个函数只能用于 "升序" 序列 ...

  10. 算法详解之最近公共祖先(LCA)

    若图片出锅请转至here 概念 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节 ...