用递归调用实现汉诺塔的移动
汉诺塔 从上到下由小到大排序,要从A柱移动到C柱,可借助B柱。
移动过程要保证上层盘子永远小于下层盘子
过程如下图:
//汉诺塔 递归调用
public class 递归法 {
public static void main(String[] args) {
int count = 10;
//设置汉诺塔层数
move(count, 'A', 'B', 'C');
//调用函数 开始移动
}
public static void move(int top_hanoi, char a, char b, char c) {
if (top_hanoi == 1){
//如果只有一层 则直接移动 直接把a移动到c
/*要使盘子由A到C 从上到下由小到大排序 可借助B
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
A B c
*/
System.out.println("第1个盘子从" + a + "移动到了" + c);
}else {
//递归调用使先调用 但最后执行
move(top_hanoi - 1, a, c, b);
System.out.println("第" + top_hanoi + "个盘子从" + a + "移动到了" + c);
move(top_hanoi - 1, b, a, c);
}
}
}
可能有点绕,就其实就是递归调用函数.多敲敲代码就没毛病了😎😎😎