JavaAlgorithms/Others/TowerOfHanoi.java

27 lines
1.0 KiB
Java
Raw Permalink Normal View History

package Others;
2017-10-01 02:47:23 +08:00
import java.util.Scanner;
class TowerOfHanoi {
2020-10-24 18:23:28 +08:00
public static void shift(int n, String startPole, String intermediatePole, String endPole) {
// if n becomes zero the program returns thus ending the loop.
if (n != 0) {
// 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.format("Move %d from %s to %s\n", n, 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);
2017-10-01 02:47:23 +08:00
}
2020-10-24 18:23:28 +08:00
}
2020-10-24 18:23:28 +08:00
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
scanner.close();
}
2017-10-01 02:47:23 +08:00
}