import java.lang.Integer.*; class Hanoi { public static void main(String args[]) { System.out.println("Executions begins..."); /* check to that four numeric arguments were given */ if (args.length != 4) { System.out.println("args.length = "+args.length); System.out.println(" usage: java Hanoi , , , "); } else { int nDisks = Integer.parseInt(args[0]); int fromPeg = Integer.parseInt(args[1]); int toPeg = Integer.parseInt(args[2]); int otherPeg = Integer.parseInt(args[3]); System.out.println("Moving " + nDisks + " disks from " + fromPeg + " to " + toPeg + " using " + otherPeg); /* given the number of disks, do the recursion */ tower(nDisks, fromPeg, toPeg, otherPeg); System.out.println("Execution ends."); } } static void tower(int nDisks, int fromPeg, int toPeg, int otherPeg) { if (nDisks == 1) { System.out.println("Move disk from "+fromPeg+" to "+toPeg); } else { tower(nDisks-1, fromPeg, otherPeg, toPeg); tower(1, fromPeg, toPeg, otherPeg); tower(nDisks-1, otherPeg, toPeg, fromPeg); } } }