class Hanoi { // this solves Problem P5.21 of the textbook. public static void hanoi( int fromPeg, int toPeg, int n ) { int tmpPeg = 1 + 2 + 3 - fromPeg - toPeg; // pegs are numbered 1,2,3 ... compute our tmp peg if( n == 1 ) { System.out.print ( "Move disk from " + fromPeg ); System.out.println( " to " + toPeg ); } else { // move n-1 disks from fromPeg to tmpPeg // move nth disk from fromPeg to toPeg // move n-1 disks from tmpPeg back to toPeg hanoi( fromPeg, tmpPeg, n-1 ); hanoi( fromPeg, toPeg, 1 ); hanoi( tmpPeg, toPeg, n-1 ); } } public static void main( String[] args ) { // move 4 disks from peg 1 to peg 2 hanoi( 1, 2, 4 ); } }