public class Hanoi { private static final char A = 'A'; // initial source private static final char B = 'B'; // initial temp private static final char C = 'C'; // initial destination private void move(char from, char to) { System.out.printf("Move disk from %c to %c.\n", from, to); } private void solve(int n, char source, char temp, char destination) { if (n > 0) { solve(n-1, source, destination, temp); move(source, destination); solve(n-1, temp, source, destination); } } public static void main(String args[]) { Hanoi hanoi = new Hanoi(); int n = 3; System.out.printf("Solve for %d disks:\n\n", n); hanoi.solve(n, A, B, C); } }