/*

Program to display the solution of Tower of Hanoi using recursion.

*/

import java.io.*;

class towerOfHanoi

{

public static void main(String args[]) throws IOException

{

BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));

towerOfHanoi call = new towerOfHanoi();

System.out.print("Enter number of discs : ");

int n = Integer.parseInt(br.readLine());

System.out.print("\nLabel of 1st stick : ");

String a = br.readLine();

System.out.print("Label of 2nd stick : ");

String b = br.readLine();

System.out.print("Label of 3rd stick : ");

String c = br.readLine();

call.hanoi(n,a,b,c);

}

void hanoi (int n, String a, String b, String c)

{

if(n==1)

System.out.println("Move disc from " +a +" to " +c);

else

{

hanoi(n-1,a,c,b);

System.out.println("Move disc from " +a +" to " +c);

hanoi(n-1,b,a,c);

}

}

}

/**

* ALGORITHM :

* ---------

* 1. Start

* 2. Accept the number of discs from the user.

* 3. Ask for the labels of sticks A, B & and C.

* 4. Move n−1 discs from A to B. This leaves disc #n alone on stick A.

* 5. Move disc #n from A to C.

* 6. Move n−1 discs from B to C so they sit on disc #n.

* 7. Repeat steps 4 to 6 using recursion.

* 8. End

*/

/*

OUTPUT :

------

Enter number of discs : 4

Label of 1st stick : start

Label of 2nd stick : mid

Label of 3rd stick : end

Move disc from start to mid

Move disc from start to end

....

....

....

....

..

.

.

*/

Program to display the solution of Tower of Hanoi using recursion.

*/

import java.io.*;

class towerOfHanoi

{

public static void main(String args[]) throws IOException

{

BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));

towerOfHanoi call = new towerOfHanoi();

System.out.print("Enter number of discs : ");

int n = Integer.parseInt(br.readLine());

System.out.print("\nLabel of 1st stick : ");

String a = br.readLine();

System.out.print("Label of 2nd stick : ");

String b = br.readLine();

System.out.print("Label of 3rd stick : ");

String c = br.readLine();

call.hanoi(n,a,b,c);

}

void hanoi (int n, String a, String b, String c)

{

if(n==1)

System.out.println("Move disc from " +a +" to " +c);

else

{

hanoi(n-1,a,c,b);

System.out.println("Move disc from " +a +" to " +c);

hanoi(n-1,b,a,c);

}

}

}

/**

* ALGORITHM :

* ---------

* 1. Start

* 2. Accept the number of discs from the user.

* 3. Ask for the labels of sticks A, B & and C.

* 4. Move n−1 discs from A to B. This leaves disc #n alone on stick A.

* 5. Move disc #n from A to C.

* 6. Move n−1 discs from B to C so they sit on disc #n.

* 7. Repeat steps 4 to 6 using recursion.

* 8. End

*/

/*

OUTPUT :

------

Enter number of discs : 4

Label of 1st stick : start

Label of 2nd stick : mid

Label of 3rd stick : end

Move disc from start to mid

Move disc from start to end

....

....

....

....

..

.

.

*/

## No comments:

## Post a Comment