在这两个
elif块中,进行递归调用后不会返回任何值。您需要
return在递归调用之前先输入,
iterated例如
returnself.iterated(n/2)。如果您没有明确声明
return,该函数将返回
None。
这样可以解决此问题,但是有一种方法可以使您的代码更简单:您实际上不需要member
length。相反,您可以在递归调用的结果中加1:
def iterated(n): if n==1: return 1 elif n%2==0: return 1 + iterated(n/2) else: return 1 + iterated(3*n+1)print(iterated(5))
这不需要在类中,因为不需要任何成员。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)