/**
* 汉诺塔实现
*
* @param n 盘子个数层数
* @param a 塔a
* @param b 塔b
* @param c 塔c
*/
public static void hanoiTower(int n, char a, char b, char c) {
//如果只有一个盘子
if (n == 1) {
System.out.println(a + "-->" + c);
} else {
//如果盘子个数 > 1,则将最下边的一个盘子看作一个,将上边的所有盘子看作一个,递归实现
//如果上边的盘子个数任然>1,再递归
//直到上边只有一个盘子
//第一步,将上面的n-1个盘子从A盘移动到B盘
hanoiTower(n - 1, a, c, b);
//第二步再将最小边的盘子移动到C盘
System.out.println(a + "-->" + c);
//第三步将B盘的所有盘子全部移动到C盘
hanoiTower(n - 1, b, a, c);
}
}
原文:https://www.cnblogs.com/mx-info/p/14881468.html