package Others; import java.util.Scanner; class TowerOfHanoi { 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) { return; } // 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 scanner.close(); } }