【Python】計算N的階乘末位有幾個零

前言

在CodeWar上遇到的這個題目,分享如下解題思路。python

解題思路

測試數據N能夠至關大,直接硬算是不可取的。能夠觀察到每遇到一個5末位就會多一個零(前面有用不完的偶數),每遇到一個25又多一個零……測試

代碼

def zeros(n):
    x = n // 5
    return x + zeros(x) if x else 0 # 最短:return n // 5 + zeros(n // 5) if n // 5 else 0

感想

遇到與整數有關的問題要多思考數字之中有沒有特別的性質能夠簡化問題。code

相關文章
相關標籤/搜索