package hanoi;
public class HanoiTest { public HanoiTest(int n) { // hanoi(n, 1, 2, 3);
hanoi(n, 1, 3); }
void hanoi(int n, int start, int help, int end) { if (n == 1) { move(start, end); return; } else { hanoi(n - 1, start, end, help); move(start, end); hanoi(n - 1, help, start, end); } }
void hanoi(int n, int start, int end) { if (n == 1) { move(start, end); } else { if (start == 1 && end == 2) { hanoi(n - 1, 1, 3); move(1, 2); hanoi(n - 1, 3, 2); } else if (start == 1 && end == 3) { hanoi(n - 1, 1, 2); move(1, 3); hanoi(n - 1, 2, 3); } else if (start == 2 && end == 1) { hanoi(n - 1, 2, 3); move(2, 1); hanoi(n - 1, 3, 1); } else if (start == 2 && end == 3) { hanoi(n - 1, 2, 1); move(2, 3); hanoi(n - 1, 1, 3); } else if (start == 3 && end == 1) { hanoi(n - 1, 3, 2); move(3, 1); hanoi(n - 1, 2, 1); } else if (start == 3 && end == 2) { hanoi(n - 1, 3, 1); move(3, 2); hanoi(n - 1, 1, 2); } } }
void move(int start, int end) { System.out.println(start + "--->" + end); }
public static void main(String[] args) { new HanoiTest(5); } }
|