I'm having quite a hard time figuring out what's going wrong here:
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)
For example,
x=iterate()
x.iterated(5)
outputs None. It should output 6 because the length would look like this:
5 --> 16 --> 8 --> 4 --> 2 --> 1
After doing some debugging, I see that the self.length is returned properly but something goes wrong in the recursion. I'm not really sure. Thanks for any help.
init, but they were originally removed by the formatting and not displayed (which I'm guessing is what also happened to your comment). I've fixed the formatting for the question now. - ire_and_curses