【发布时间】:2017-11-09 22:36:17
【问题描述】:
我正在尝试使用递归函数找到两个函数之间的和。到目前为止,这是我所得到的:
def add(a, b):
if zero(a):
return b
if zero(b):
return a
else:
return add(decr(a), incr(b))
zero(a):判断一个函数是否为0
decr(a):将 a 加 1 (a + 1) 的函数
incr(a):将 a 减 1 (a - 1) 的函数
在运行这个函数时,我得到了我正在寻找的答案, 例如,调用 add(5, 6) 确实给了我 11,我根本不明白它是如何得到这个答案的。换句话说,我完全是偶然得到的。 如果有人可以解释这里发生了什么,那将不胜感激。
【问题讨论】:
-
真的,你只是把键盘捣碎了,正确的答案就出来了?你应该买彩票!
-
一步一步来吧。
-
您是否尝试过单步执行代码?使用调试器还是在纸上?
-
那么我们是不是假装这不仅仅是一个家庭作业问题?这也不是一个很好的问题,因为如果
a为负数,它就不起作用。如果b为正,则zero(b)的条件永远不会为真。
标签: python-3.x function recursion