我有不少很難搞清楚發生了什麼事情錯在這裏:遞歸函數不能正常工作
class iterate():
def __init__(self):
self.length=1
def iterated(self, n):
if n==1:
return self.length
elif n%2==0:
self.length+=1
self.iterated(n/2)
elif n!=1:
self.length+=1
self.iterated(3*n+1)
例如,
x=iterate()
x.iterated(5)
輸出None
。它應該輸出6,因爲長度看起來像這樣: 5 - > 16 - > 8 - > 4 - > 2 - > 1
經過一些調試,我看到self.length
返回正確,但在遞歸中出了點問題。我不太確定。謝謝你的幫助。
?我通常使用Python 2.6,init需要聲明爲__init__。但是,這明顯爲你運行,所以我想知道什麼版本的Python允許這個 – inspectorG4dget 2010-06-01 00:39:54
@ inspectorG4dget - 提供的源代碼有兩個下劃線圍繞'init',但它們最初被格式化刪除,而不是顯示(我'猜測是你的評論也發生了什麼)。我已經修復了現在問題的格式。 – 2010-06-01 01:10:02
@ire_and_curses:看來。看起來像雙下劃線是文本格式爲粗體! – inspectorG4dget 2010-06-01 02:17:18