【发布时间】:2012-12-18 20:14:57
【问题描述】:
我收到此错误:
TypeError:+ 的不支持的操作数类型:“int”和“NoneType”
对于此代码:
def a(n):
if n < 0:
return 0
if n == 1:
return 1
if n > 1:
return a(n-1) + a(n-2) + a(n-3)
我应该如何调用多个递归?
【问题讨论】:
-
进行递归时,确保你的函数总是返回一些东西。在您的情况下,您的 if 语句中遗漏了一些情况,因此快速解决方法是在函数末尾添加
return 0之类的内容。 -
某事告诉我您遗漏了一个案例。如果
n == 2会发生什么?应该还有另一种情况来处理这个问题。 -
附带说明,这是一种非常低效的生成 Tribonacci 数的方法。简单的
a, b, c = b, c, a + b + c会更好。