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