r/learnpython • u/Key_Cloud_7002 • 13h ago
recursion problem
I'm trying to teach myself python using John Zelles book. On the 13th chapter it gives this example of recursion I'm trying to understand:
def moveTower(n, source, dest, temp):
if n ==1:
print("move disk from , " , source , "to", dest)
else:
moveTower(n-1, source, temp, dest)
moveTower(1, source, dest,temp)
moveTower(n-1,temp,dest,source)
def hanoi(n):
moveTower(n , "a", "c","b")
hanoi(3)
The code is first assiging the variables A to source then C to dest then b to temp but do the lines moveTower(n-1, source, temp, dest) and moveTower(n-1,temp,dest,source) work? Would it be moveTower(3-1, a,b,c)? How exactly are they outputting a to c then a to b then c to b and b to a , etc...
1
Upvotes
1
u/recursion_is_love 4h ago edited 4h ago
It is possible and helpful to trace the code by pen and paper on zero disk, one disk and two disk. You will get it when you notice the dejavu.
You invest your time once and the understanding remains for a long time. For me, the convenience of the debugger mad it easy to skip the "pause and think" moment.