-1
阿克曼的功能已經試圖通過下面的代碼來實現爲什麼此代碼不打印?
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)
阿克曼的功能已經試圖通過下面的代碼來實現爲什麼此代碼不打印?
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
默認返回值的函數結束。
哇!我甚至沒有看到!愚蠢的我 – pythonian29033
謝謝。我假定它會自動從第一個分支返回某種值。 – rigel