美文网首页算法每日一刷
LeetCode-172. 阶乘后的零(Swift)

LeetCode-172. 阶乘后的零(Swift)

作者: entre_los_dos | 来源:发表于2019-07-10 23:25 被阅读0次

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes

题目

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

示例 1:

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

示例 2:

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

n! = n(n-1)(n-2)直到*1为止。计算结果中,尾数是0的个数。比如1020。尾数有1个零。

试验1--先计算结果,再遍历求值。。。

  func trailingZeroes(_ n: Int) -> Int {
     
        var zeroNum = 0
        var currentN = n
        var result = 1
        
        //先算出最后结果
        while currentN > 1 {
            result *= currentN;
            currentN -= 1
        }
        //查找0的个数(略)
       }

不可取,结果过大时,程序会溢出。

方法2-算有多少个5

func trailingZeroes(_ n: Int) -> Int {
     
        var zeroNum = 0
        var currentN = n
        
        //什么时候会出现0。10以内的举例2*5,4*5,6*5,8*5,10*5。
        //所以可以看出规律,都跟5有关,凑成2*5就能出来1个0。
        //由于2很多,那么我们可以理解成算总共有多少个5.要注意25这种,有两个5,所以会出来2个0.
        while currentN >= 5 {
            zeroNum += currentN / 5
            currentN = currentN / 5
        }
        
        return zeroNum
    }

相关文章

  • LeetCode-172. 阶乘后的零(Swift)

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/factor...

  • LeetCode-172-阶乘后的零

    LeetCode-172-阶乘后的零 172. 阶乘后的零[https://leetcode-cn.com/pro...

  • 172. 阶乘后的零

    172. 阶乘后的零

  • 阶乘后的零

    阶乘后的零 Leetcode 172. 阶乘后的零 题意 给定一个整数n, 返回n!结果尾数中零的数量。 示例一 ...

  • 阶乘后的零

    题目描述:给定一个整数 n,返回 n! 结果尾数中零的数量。 示例:输入: 5输出: 1解释: 5! = 120,...

  • 阶乘后的零

    题目 难度级别:简单 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3输出: 0解释: ...

  • 阶乘后的零

    tag 阶乘后0的个数 题目 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1:输入: 3输出: 0解...

  • 41阶乘后的零

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

  • 【leetcode】阶乘后的零

    【leetcode】阶乘后的零 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3输出: ...

  • leetCode阶乘后的零

    最近做一些lc上的题,有些感觉挺好的记录一下:原题描述如下://给定一个整数 n,返回 n! 结果尾数中零的数量。...

网友评论

    本文标题:LeetCode-172. 阶乘后的零(Swift)

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