class TowerOfHanoi
{
public static void main(String args[ ])
{
int n=0;
DataInputStream in = new DataInputStream(System.in);
try
{
System.out.print(“Enter number of rings : “);
n = Integer.parseInt(in.readLine());
}
catch(Exception e) { System.out.println(“I/O Error”); }
Hanoi(n);
}
static void MoveDisc (int whichdisc , char frompeg , char topeg )
{
System.out.println(“Move ring “+whichdisc+” from peg “+frompeg+” to peg “+topeg);
}
static void MoveTower (int height, char frompeg, char topeg, char usingpeg)
{
if (height <= 0) { // nothing to move! }
else
{
MoveTower (height-1, frompeg, usingpeg, topeg);
MoveDisc (height, frompeg, topeg);
MoveTower (height-1, usingpeg, topeg, frompeg);
}
}
static void Hanoi(int n)
{
MoveTower(n,'A','B','C');
}
}
/*
Execution :
C:\javac TowerOfHanoi.java
C:\java TowerOfHanoi
Output :
Enter number of rings : 3
Move ring 1 from peg A to peg B
Move ring 2 from peg A to peg C
Move ring 1 from peg B to peg C
Move ring 3 from peg A to peg B
Move ring 1 from peg C to peg A
Move ring 2 from peg C to peg B
Move ring 1 from peg A to peg B
*/
No comments:
Post a Comment