1. 程式人生 > >【Python】設計一個演算法,計算出n階乘中尾部零的個數

【Python】設計一個演算法,計算出n階乘中尾部零的個數

1.常見的思路:先求N的階乘,再計算零的個數。 (但是,時間消耗太大)

   def trailingZeros( n):

        S = 1
        for i in range(1,n+1):
            S = S * i
        count = 0
        while(S % 10 == 0):
            count = count + 1
            S = S // 10

        return count

2.  在計算N階乘的時候,只有5(5的次冪)才會對乘積的尾部產生添0的效果。因此,我們需要計算[1,2,...,N]中有多少個是5的倍數,同時有幾個是 5的次冪 的倍數。(參考資料:https://blog.csdn.net/Aphysia/article/details/53212609

    def trailingZeros(n):
        num = 0
        while(n):
            num = num +  n//5
            n = n // 5
        return num

?mid=90f06&wid=51824&sid=&tid=7099&rid=MNTZ_LOADED&t=1534150233917?mid=865b2&wid=51824&sid=&tid=7099&rid=MNTZ_LOADED&t=1534150234223