public class Hanoi {
/**
*
* @param n
* 盘子的数目
* @param A
* 源座
* @param B
* 辅助座
* @param C
* 目的座
*/
public void hanoi(int n, char A, char B, char C) {
if (n == 1) {
move(A, C);
} else {
hanoi(n - 1, A, C, B);
move(A, C);
hanoi(n - 1, B, A, C);
}
}
// 打印移动路径
private void move(char A, char C) {
System.out.println("Direction:" + A + "--->
" + C);
}
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
hanoi.hanoi(3, '1', '2', '3');
}
}
打印结果:
Direction:1--->3 Direction:1--->2 Direction:3--->2 Direction:1--->3 Direction:2--->1 Direction:2--->3 Direction:1--->3