本文主要是介绍[LeetCode] 172. Factorial Trailing Zeroes,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目内容
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
题目思路
需要思考一下,到底什么情况下会出现0。那么根据经验,只要碰到包含因子5的数字,就会出现0.(包含5然后包含偶数,而且偶数的数量大于5的个数)。比如5!包含1个5,就是1个0。10!包含2个5,就是两个零。所以这道题目可以转换为到底这个阶乘之中包含了多少个5。如果直接算阶乘运算量会很大。不妨思考一下,用n除以5得到的数字,表现从1开始包含了多少个1*5,然后在这样乘相当于由得到了5*5的数量(第一个5已经被算了,所以只算一个),以此类推,直到小于5.
程序代码
class Solution(object):def trailingZeroes(self, n):""":type n: int:rtype: int"""if n<5:return 0else:return n/5+self.trailingZeroes(n/5)
这篇关于[LeetCode] 172. Factorial Trailing Zeroes的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!