描述
设计一个算法,计算出n阶乘中尾部零的个数
求解
设f(n!)为n!尾部零的个数得到函数,根据规律:
当0 < n < 5时,f(n!) = 0;
当n >= 5时,f(n!) = k + f(k!), 其中 k = n / 5(取整)
证明
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.
res = 0
while(n >= 5):
n //= 5
res += n
return res
测试输入 :11
输出:2
LintCode