Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Recursion: the Towers of Hanoi problem

by MistaMuShu (Beadle)
on Oct 19, 2004 at 23:30 UTC ( #400700=note: print w/ replies, xml ) Need Help??


in reply to Recursion: The Towers of Hanoi problem

Forgive me, but I'm not seeing how the last statements in the else loop get executed:

print "Move disk $num from $from to $to\n"; movedisks( $num-1, $aux, $to, $from );

I jotted down the steps with 3 discs on a piece of paper and this is how I saw it:

$numdisks = 3 movedisks( 3-1, A, C, B) movedisks( 2-1, A, B, C) print "Move disk 1 from A to B" for the base case

Shouldn't the last two statements be right outside the else block?

Neato problem, I didn't get it at first, but now I'm tempted to start my own 3-peg disc rotating habit. It all sounds very zen ;-)


Comment on Re: Recursion: the Towers of Hanoi problem
Select or Download Code
Re^2: Recursion: the Towers of Hanoi problem
by insaniac (Friar) on Oct 20, 2004 at 11:11 UTC
    well that's easy, the last 2 statements get executed when the algorithm is "rolling back" the loop. I mean: the last time the first movedisks statement is executed in the loop, it will start executing the last 2 statements from back to front (read: go over the loop from back to front)... that's what recursion is all about ;-)

    --
    to ask a question is a moment of shame
    to remain ignorant is a lifelong shame

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://400700]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (20)
As of 2015-07-01 17:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (13 votes), past polls