设计一个算法,计算出n阶乘中尾部零的个数
class Solution:
"""
@param: n: An integer
@return: An integer, denote the number of trailing zeros in n!
"""
def trailingZeros(self, n):
# write your code here, try to do it without arithmetic operators.
x = 5
a = 0
while n > x:
a += n // x
x *= 5
return a
每含有一个拥有约数5的数,尾部有一个0。每含有一个拥有约数25的数,尾部会有两个0,不过之前算5的约数时,计算过一次,只需再记一次即可。同理,5的幂次数依次计算一次。再求和,就是尾部0的个数。