Given an integer n, return the number of trailing zeroes in n!.python
Note: Your solution should be in logarithmic time complexity.markdown
解决思路:
决定阶乘末尾零的个数实际上是数列中5出现的次数,好比5的阶乘一个零。1024的阶乘末尾到底有几个零呢?spa
http://bbs.csdn.net/topics/380161955.net
代码以下:code
int trailingZeroes(int n)
{
int total = 0;
while(n>=5)
{
n = (n-(n%5))/5;
total = total + n;
}
return total;
}
python 的解决方案:图片
class Solution:
# @return an integer
def trailingZeroes(self, n):
factor, count = 5, 0
while True:
curCount = n // factor
if not curCount:
break
count += curCount
factor *= 5
return count