JavaAlgorithms/Others/TowerOfHanoiUsingRecursion.java

27 lines
1.1 KiB
Java
Raw Normal View History

2017-10-01 02:47:23 +08:00
import java.util.Scanner;
2017-10-03 15:08:23 +08:00
class TowerOfHanoi
2017-10-01 02:47:23 +08:00
{
public static void shift(int n, String startPole, String intermediatePole, String endPole)
{
if (n == 0) // if n becomes zero the program returns thus ending the loop.
{
return;
}
2017-10-03 15:08:23 +08:00
2017-10-01 02:47:23 +08:00
// Shift function is called in recursion for swapping the n-1 disc from the startPole to the intermediatePole
shift(n - 1, startPole, endPole, intermediatePole);
System.out.println("\nMove \"" + n + "\" from " + startPole + " --> " + endPole); // Result Printing
// Shift function is called in recursion for swapping the n-1 disc from the intermediatePole to the endPole
shift(n - 1, intermediatePole, startPole, endPole);
}
public static void main(String[] args)
{
System.out.print("Enter number of discs on Pole 1: ");
Scanner scanner = new Scanner(System.in);
int numberOfDiscs = scanner.nextInt(); //input of number of discs on pole 1
shift(numberOfDiscs, "Pole1", "Pole2", "Pole3"); //Shift function called
}
}