菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
260
0

Leetcode练习(Python):数学类:第172题:阶乘后的零:给定一个整数 n,返回 n! 结果尾数中零的数量。

原创
05/13 14:22
阅读数 30064
题目:
阶乘后的零:给定一个整数 n,返回 n! 结果尾数中零的数量。
说明: 你算法的时间复杂度应为 O(log n) 
思路:
结果末尾的0只可能由5*2,5*4,5*6和5*8得来,往小了说就是5*2,因此找出可能有多少个5是本题的关键。因为限制了时间复杂度,因此使用这样的思路,没有限制的话,第一开始想到的是暴力法。
程序:
class Solution:
    def trailingZeroes(self, n: int) -> int:
        if n == 0:
            return 0
        if n < 5:
            return 0
        result = 0
        while n >= 5:
            n = (n // 5)
            result = result + n
        return result

发表评论

0/200
260 点赞
0 评论
收藏
为你推荐 换一批