Python 为什么这个代码不打印?
Ackermann函数已尝试通过以下代码实现Python 为什么这个代码不打印?,python,recursion,ackermann,Python,Recursion,Ackermann,Ackermann函数已尝试通过以下代码实现 def A(m, n): if m == 0: return n + 1 elif m > 0 and n == 1: A(m - 1, 1) elif m > 0 and n > 0: A(m - 1, A(m, n - 1)) print A(4, 5) 对于if语句的3个分支中的2个分支,您的函数不返回任何内容;只有当m==0时,才显式返回值 您还需要
def A(m, n):
if m == 0:
return n + 1
elif m > 0 and n == 1:
A(m - 1, 1)
elif m > 0 and n > 0:
A(m - 1, A(m, n - 1))
print A(4, 5)
对于
if
语句的3个分支中的2个分支,您的函数不返回任何内容;只有当m==0
时,才显式返回值
您还需要返回递归调用的结果:
def A(m, n):
if m == 0:
return n + 1
elif m > 0 and n == 1:
return A(m - 1, 1)
elif m > 0 and n > 0:
return A(m - 1, A(m, n - 1))
如果没有显式返回,函数将以默认返回值
None
结束。我假设它自动从第一个分支返回某种值。