我试图用python per this问题计算一个阶乘中的尾随零的数量。到目前为止,我的解决方案看起来像这样:
import math
def zeros(n):
return len(str(math.factorial(n))) - len(str(math.factorial(n)).rstrip('0'))
这适用于较小的数字,但其中一个测试是1000000000!
,我的算法效率低导致系统中断。
我过去一直在努力提高算法效率,并希望对此主题提出任何一般性建议,以及任何可以使该算法更有效的具体指示。
答案 0 :(得分:2)
不是直接计算因子计算长度,而是最好使用代数属性。
例如,不是累计总数,而是跟踪2和5的倍数。