29.leetcode172_factorial_trailing_zeroes

1.题目描述

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.

给一个数n,在线性时间内得出末尾0的个数

2.题目分析

因为0的个数与10的倍数相等,10可以分解为2和5,所以只要求出n范围内的可以整除2和5的数的个数,取较少的那个。因为5>2,所以5的会比较少,因此只求出能整除5的个数的树就可以了。但应该注意像n=5**i(i>1)这种情况

3.解题思路

 1 class Solution(object):
 2     def trailingZeroes(self, n):
 3         """
 4         :type n: int
 5         :rtype: int
 6         """
 7         if n/5<5:   #如果n/5>=5的话,说明还能再次分解一下
 8             return n/5
 9         else:
10             return self.trailingZeroes(n/5)+n/5

 

posted @ 2018-02-14 20:40  vlice  阅读(71)  评论(0编辑  收藏  举报