Python版本2.7.6
我编写了一个迭代函数,用于计算特定阶乘所预期的尾随零的数量。然后我尝试将其重写为递归函数。 这是递归结果:
def f_FactorialTailZeros(v_Num, v_Result = 0):
if v_Num < 5:
return v_Num
v_Result = v_Result + f_FactorialTailZeros(v_Num // 5, v_Num // 5)
return v_Result
print(f_FactorialTailZeros(30)) ## 7
print(f_FactorialTailZeros(70)) ## 16
它有效,但是,为了学习,还有更好的方法吗?
答案 0 :(得分:3)
根据您的代码:
def f_FactorialTailZeros(v_Num):
if v_Num < 5:
return 0
return v_Num // 5 + f_FactorialTailZeros(v_Num // 5)
答案 1 :(得分:2)
是的,你可以用递归函数来看看下面的代码和FYI阅读this
def recursive_trailingZeroes(A):
if A==0:
return 0
return (A//5)+recursive_trailingZeroes(A//5)