python之N阶乘结果末尾有几个0(算法)

之前写过一个阶乘末尾0个数的计算方法,是要把阶乘算出来

python之N阶乘结果末尾有几个0

今儿想到若阶乘最后为0,则必须有2*5,相当于把每个阶乘因子分解并计算2和5的个数

现实中2的个数肯定大于5,所以只需要计算5的个数

对于一个阶乘来说,因子5的个数应该为数字n//5,若为25、125这些为5的次方的数字,则还需要加上n//25、n//125,那么可以用推导式写如下:

def factorial(factorialNum):
    return factorialNum ==  0 if factorialNum // 5 ==0 else factorialNum // 5 + factorial(factorialNum // 5)

print(factorial(125))
原文地址:https://www.cnblogs.com/watertaro/p/12895562.html