# # This software is Copyright 2005 by Elsevier Inc. You may use it # under the terms of the license at http://perl.plover.com/hop/LICENSE.txt . # ### ### hanoi ### ## Chapter 1 section 3 # hanoi(N, start, end, extra) # Solve Tower of Hanoi problem for a tower of N disks, # of which the largest is disk #N. Move the entire tower from # peg `start' to peg `end', using peg `extra' as a work space sub hanoi { my ($n, $start, $end, $extra) = @_; if ($n == 1) { print "Move disk #1 from $start to $end.\n"; # Step 1 } else { hanoi($n-1, $start, $extra, $end); # Step 2 print "Move disk #$n from $start to $end.\n"; # Step 3 hanoi($n-1, $extra, $end, $start); # Step 4 } }