【leetcode❤python】172. Factorial Trailing Zeroes
#-*- coding: UTF-8 -*-
#給定一個(gè)整數(shù)N,那么N的階乘N!末尾有多少個(gè)0? 比如:N=10,N!=3628800,N!的末尾有2個(gè)0。
#所有的尾部的0可以看做都是2*5得來(lái)的,所以通過(guò)計(jì)算所有的因子中2和5的個(gè)數(shù)就可以知道尾部0的個(gè)數(shù)。
#實(shí)際上,2的個(gè)數(shù)肯定是足夠的,所以只需計(jì)算5的個(gè)數(shù)即可。
#要注意,25=5*5是有兩個(gè)5的因子;125=5*5*5有3個(gè)5的因子。比如,計(jì)算135!末尾0的個(gè)數(shù)。
#首先135/5 = 27,說(shuō)明135以內(nèi)有27個(gè)5的倍數(shù);27/5=5,說(shuō)明135以內(nèi)有5個(gè)25的倍數(shù);
#5/5=1,說(shuō)明135以內(nèi)有1個(gè)125的倍數(shù)。
#當(dāng)然其中有重復(fù)計(jì)數(shù),算下來(lái)135以內(nèi)因子5的個(gè)數(shù)為27+5+1=33。
class Solution(object):
??? def trailingZeroes(self, n):
??????? """
??????? :type n: int
??????? :rtype: int
??????? """
??????? result=0
??????? while n>0:
??????????? n=n/5
??????????? result+=n
??????? return result
sol=Solution()
sol.trailingZeroes(10)
轉(zhuǎn)載于:https://www.cnblogs.com/kwangeline/p/5953541.html
總結(jié)
以上是生活随笔為你收集整理的【leetcode❤python】172. Factorial Trailing Zeroes的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 定制一个网络文件系统
- 下一篇: python 运维自动化之路 Day2