Towers Of Hanoi

The Tower of Hanoi is a mathematical game or puzzle. It consists of three rods, and a number of disks of different sizes which can slide onto any rod.

The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:

  1. Only one disk is allowed to move at a time..
  2. Bigger disk cannot be placed on the top of smaller disk.

Tower-Of-Hanoi
Tower-Of-Hanoi

Approach:

  • Recursively Move N-1 disk from source to Auxiliary peg.
  • Move the last disk from source to destination.
  • Recursively Move N-1 disk from Auxiliary to destination peg.

Code:

public class TOH {
public void Tower(int n, String src, String aux, String dest){
if(n==1){
System.out.println("Move disc "+ n + " from " + src + " to " + dest );
}
else{
//make recursive call to move n-1 disks to aux nail
Tower(n1, src, dest, aux);
//move the nth disc from "A" to "B"
System.out.println("Move disc " + n + " from " + src + " to " + dest );
//Move n-1 disc from aux mail to dest tail
Tower(n1, aux, src, dest);
}
}
public static void main (String[] args) throws java.lang.Exception
{
int n = 4;
TOH i = new TOH();
//A, B, C -> A is source, B is destination and C is Auxiliary Nail
i.Tower(n,"A","C","B");
}
}

view raw
TOH.java
hosted with ❤ by GitHub


Output:

Move disc 1 from A to C
Move disc 2 from A to B
Move disc 1 from C to B
Move disc 3 from A to C
Move disc 1 from B to A
Move disc 2 from B to C
Move disc 1 from A to C
Move disc 4 from A to B
Move disc 1 from C to B
Move disc 2 from C to A
Move disc 1 from B to A
Move disc 3 from C to B
Move disc 1 from A to C
Move disc 2 from A to B
Move disc 1 from C to B

1 thought on “Towers Of Hanoi”

Leave a Reply to Carlos de la Torre Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.