Wednesday, January 29, 2014

Classic Tower Of Hanoi Example

Source:
public class TowerOfHanoi {  
 
   private static void hanoi (int disks) {  
      hanoi (disks, "Pole 1", "Pole 3", "Pole 2");  
   }  
 
   private static void hanoi (int disks, String from, String to, String using) {  
      if (disks != 0) {  
         hanoi (disks -1, from, using, to) ;   
         System.out.println("Move disk " + disks + " from " + from + " to " + to);  
         hanoi (disks -1, using, to, from);  
      }  
   }  
 
   public static void main (String[] arg) throws Exception {  
      hanoi(4);  
   }  
}  

Output:
   $ java TowerOfHanoi 
   Move disk 1 from Pole 1 to Pole 2
   Move disk 2 from Pole 1 to Pole 3
   Move disk 1 from Pole 2 to Pole 3
   Move disk 3 from Pole 1 to Pole 2
   Move disk 1 from Pole 3 to Pole 1
   Move disk 2 from Pole 3 to Pole 2
   Move disk 1 from Pole 1 to Pole 2
   Move disk 4 from Pole 1 to Pole 3
   Move disk 1 from Pole 2 to Pole 3
   Move disk 2 from Pole 2 to Pole 1
   Move disk 1 from Pole 3 to Pole 1
   Move disk 3 from Pole 2 to Pole 3
   Move disk 1 from Pole 1 to Pole 2
   Move disk 2 from Pole 1 to Pole 3
   Move disk 1 from Pole 2 to Pole 3

Blog Archive