### 题目描述 给定一个整数 n ,返回 n! 结果中尾随零的数量。 $$n! = n*(n-1)*(n-2)* \.\.\. *2*1$$ ### 输入输出 #### 示例1 ``` 输入:n = 3 输出:0 解释:3! = 6 ,不含尾随 0 ``` #### 示例2 ``` 输入:n = 5 输出:1 解释:5! = 120 ,有一个尾随 0 ``` #### 示例3 ``` 输入:n = 0 输出:0 ``` **提示:** 0 <= n <= 10^4 ### 题目解答 #### 题目思路 只有2和5相乘,可以组合出0,因此我们需要统计1-n数字的因子里面,有多少个2,有多少个5,取最小值即可。 由于偶数都有因子2, 而只有5的倍数才有因子5,因此因子5的数量一定是小于等于因子2的数量。我们只需要统计有多少因子5即可。 #### 代码实现 ```python class Solution: def trailingZeroes(self, n: int) -> int: five = 0 for i in range(5, n+1, 5): num = i while num % 5 == 0: five+= 1 num /= 5 return five ``` 最后编辑:2024年04月23日 ©著作权归作者所有 赞 0 分享
最新回复