【LeetCode系列】Leet Code OJ 172. Factorial Trailing Zeroes [Difficulty: Easy]

题目链接

看起来像是一个简单的题目,本来觉得遍历一遍n,把里面的带有5的倍数的统计一下就行了,但是题目要求是O(logN),这样的方法显然是不行的,想了想应该是只能用因子分解的方式:

1. 首先要构成位数为0的话,那么必须乘以10, 10的话就分解为2*5

2. 在一个fanw范围内的偶数数量一定大于或等于5倍数的数

那么,这时候只要统计这个阶乘中5的个数,Emmm...,怎么统计呢,比如5、10、15的话只带有一个5,而25带有2个5

class Solution:
    def trailingZeroes(self, n):
        """
        :type n: int
        :rtype: int
        """
        resu = 0
        while n>0:
            n = n // 5
            resu += n
        
        return resu

在python 取商要用双斜杠,不然的话会变成浮点数的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值