【leetcode❤python】172. Factorial Trailing Zeroes
#-*- coding: UTF-8 -*-
#給定一個整數N,那么N的階乘N!末尾有多少個0? 比如:N=10,N!=3628800,N!的末尾有2個0。
#所有的尾部的0可以看做都是2*5得來的,所以通過計算所有的因子中2和5的個數就可以知道尾部0的個數。
#實際上,2的個數肯定是足夠的,所以只需計算5的個數即可。
#要注意,25=5*5是有兩個5的因子;125=5*5*5有3個5的因子。比如,計算135!末尾0的個數。
#首先135/5 = 27,說明135以內有27個5的倍數;27/5=5,說明135以內有5個25的倍數;
#5/5=1,說明135以內有1個125的倍數。
#當然其中有重復計數,算下來135以內因子5的個數為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)
轉載于:https://www.cnblogs.com/kwangeline/p/5953541.html
總結
以上是生活随笔為你收集整理的【leetcode❤python】172. Factorial Trailing Zeroes的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 定制一个网络文件系统
- 下一篇: SVN 分支管理