python之N阶乘结果末尾有几个0(算法)
之前写过一个阶乘末尾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))
关于本篇内容如有转载请注明出处;技术内容的探讨、纠错,请发邮件到70907583@qq.com