【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

相关文章
相关标签/搜索