汉诺塔问题java实现
时间: 2023-03-23 09:00:47 浏览: 43
汉诺塔问题的java实现代码可以使用递归算法来实现。代码如下:
```
class HanonTower {
public static void move(int n, char from, char to, char inter) {
if (n == 1) {
System.out.println("从 " + from + " 移动盘子 1 号到 " + to);
} else {
move(n - 1, from, inter, to);
System.out.println("从 " + from + " 移动盘子 " + n + " 号到 " + to);
move(n - 1, inter, to, from);
}
}
public static void main(String[] args) {
int n = 3;
move(n, 'A', 'C', 'B');
}
}
```
在代码中,我们定义了一个名为 `move` 的方法,它接收四个参数:盘子数量 `n`、起点柱子 `from`、终点柱子 `to` 和中转柱子 `inter`。如果盘子数量为 1,则直接移动;如果盘子数量大于 1,则需要先移动 `n-1` 个盘子到中转柱子,再移动最大的盘子到终点柱子,最后移动剩下的 `n-1` 个盘子到终点柱子。
在 `main` 方法中,我们调用了 `move` 方法,并传入参数:盘子数量为 3,起点柱子为 'A',终点柱子为 'C',中转柱子为 'B'。运行代码后,将会得到汉诺塔的移动步骤。
阅读全文