Recursive Algorithm using Java 2
package towersofhanoi; import java.util.Scanner; public class TowersOfHanoi { /** * * @param nDisks * @param fromPeg * @param toPeg * @return */ public static String hanoi(int nDisks, int fromPeg, int toPeg) { if (nDisks == 1) { return "Tower " + fromPeg + " -> " + "Tower " + toPeg + ";"; } else { String sol1, sol2, sol3; int helpPeg = 6 - fromPeg - toPeg; sol1 = hanoi(nDisks - 1, fromPeg, helpPeg); sol2 = "Tower " + fromPeg + " -> " + "Tower " + toPeg + ";"; sol3 = hanoi(nDisks - 1, helpPeg, toPeg); return sol1 + sol2 + sol3; } } public static void main (String[] args) { Scanner in = new Scanner(System.in); System.out.print("Enter number of disks: "); int nDisks = in.nextInt(); int steps = 0; String StepsToSolution = hanoi(nDisks, 1, 3); for(String step : StepsToSolution.split(";")) { System.out.println(step); steps ++; } System.out.println("The total number of steps are: " + steps); } }