【发布时间】:2015-10-01 17:12:17
【问题描述】:
我尝试编写此代码并运行它,但结果显示“无”。 我通过在循环函数中添加另一个 else 进行了编辑,然后它实际上产生了一个 int 结果“57”,这不是答案。
def double(n):
return n*2
def halve(n):
return n//2
def mult(m,n):
def loop(m,n):
if n>1:
if n%2 != 0:
return m + loop(double(m),halve(n))
else:
return m #added another else
else:
return m
if n>0:
return loop(m,n)
else:
return 0
print(mult(57,86))
【问题讨论】:
-
它应该做什么?
-
86>1和86%2 == 0,你在loop函数中还缺少一个else。 -
它应该使用俄罗斯农民乘法算法打印 57 * 86 的乘法结果。
标签: python recursion multiplication