美文网首页数据结构和算法
LeetCode-172-阶乘后的零

LeetCode-172-阶乘后的零

作者: 蒋斌文 | 来源:发表于2021-06-21 09:19 被阅读0次

    LeetCode-172-阶乘后的零

    172. 阶乘后的零

    难度简单476收藏分享切换为英文接收动态反馈

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

    示例 1:

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

    示例 2:

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

    说明: 你算法的时间复杂度应为 O(log n) 。


    把每个乘数再稍微分解下,看一个例子。

    11! = 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 11 * (2 * 5) * 9 * (4 * 2) * 7 * (3 * 2) * (1 * 5) * (2 * 2) * 3 * (1 * 2) * 1

    对于含有 2 的因子的话是 1 * 2, 2 * 2, 3 * 2, 4 * 2 ...

    对于含有 5 的因子的话是 1 * 5, 2 * 5...

    含有 2 的因子每两个出现一次,含有 5 的因子每 5 个出现一次,所有 2 出现的个数远远多于 5,换言之找到一个 5,一定能找到一个 2 与之配对。所以我们只需要找有多少个 5。

    class Solution {
        public int trailingZeroes(int n) {
            int ans = 0;
            while (n!=0) {
                n /=5 ;
                ans +=n;
            }
            return ans;
    
        }
    }
    
    image-20210621091844014

    相关文章

      网友评论

        本文标题:LeetCode-172-阶乘后的零

        本文链接:https://www.haomeiwen.com/subject/pdaeyltx.html