zoukankan      html  css  js  c++  java
  • LeetCode阶乘后的零Swift

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

    示例 1:

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


    示例 2:

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


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

    思路一:

    先计算阶乘总乘积,再除10计算0的个数,n为大数时,内存溢出,时间负责度也不是要求的O(log n) 

    思路二:

    找规律

    5!=5*4*3*2*1

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

    15!=15*14*13*12*11*10*9*8*7*6*5*4*3*2*1

    20!=20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1

    25!=25*24*23*22*21*20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1

    题目求0的个数,因为10 = 5 * 2,就转变了求 5 的个数。

    5!  含5 5 共1个5

    10! 含5 10 5 共2个5

    15! 含5 15 10 5 共3个5

    20!含5 20 15 10 5  共4个5

    25!含5 25(含2个5) 20 15 10 5 共6个5 每5个数含1个5 每25个数含1个25(多含1个5)

    125!每5个数含1个5 每25个数含1个25(多含1个5)每125个数含1个125(又多含1个5)

    class Solution {
        func trailingZeroes(_ n: Int) -> Int {
            var five = 0
            var n = n
            while n >= 5 {
                n /= 5
                five += n
            }
            return five
        }
    }
  • 相关阅读:
    448-查找数组中消失的所有数字
    977 -排序数组的正方形
    爬虫小总结
    增量式爬虫
    分布式爬虫
    CrawlSpider:类,Spider的一个子类
    中间件
    中间件
    scrapy图片数据爬取之ImagesPipeline
    scrapy五大核心组件
  • 原文地址:https://www.cnblogs.com/huangzs/p/14167043.html
Copyright © 2011-2022 走看看