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))

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM