题目:
阶乘后的零:给定一个整数 n,返回 n! 结果尾数中零的数量。
说明: 你算法的时间复杂度应为 O(log n) 。
思路:
结果末尾的0只可能由5*2,5*4,5*6和5*8得来,往小了说就是5*2,因此找出可能有多少个5是本题的关键。因为限制了时间复杂度,因此使用这样的思路,没有限制的话,第一开始想到的是暴力法。
程序:
class Solution:
def trailingZeroes(self, n: int) -> int:
if n == 0:
return 0
if n < 5:
return 0
result = 0
while n >= 5:
n = (n // 5)
result = result + n
return result