diff --git a/Misc/TowerOfHanoiUsingRecursion b/Misc/TowerOfHanoiUsingRecursion new file mode 100644 index 000000000000..60778fc9abe6 --- /dev/null +++ b/Misc/TowerOfHanoiUsingRecursion @@ -0,0 +1,26 @@ +package com.manmeet; + +import java.util.Scanner; + +public class TowerOfHanoi +{ + 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; + } + // 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 + } +}