用c++写一下汉诺塔问题
时间: 2023-08-04 22:19:18 浏览: 97
C++汉诺塔问题.
好的,以下是用C++实现汉诺塔问题的代码:
```c++
#include <iostream>
using namespace std;
void hanoi(int n, char a, char b, char c) {
if (n == 1) {
cout << a << " -> " << c << endl;
return;
}
hanoi(n - 1, a, c, b);
cout << a << " -> " << c << endl;
hanoi(n - 1, b, a, c);
}
int main() {
int n; // 汉诺塔层数
cout << "请输入汉诺塔的层数:";
cin >> n;
hanoi(n, 'A', 'B', 'C');
return 0;
}
```
在这个代码中,我们定义了一个 `hanoi` 函数,它的参数 `n` 表示汉诺塔的层数,`a`、`b`、`c` 分别表示三个柱子的名称。在 `n` 等于 1 的时候,我们直接将第一个柱子上的盘子移动到第三个柱子上;否则,我们将 `n-1` 层的盘子从第一个柱子移动到第二个柱子上,再将第 `n` 层的盘子从第一个柱子移动到第三个柱子上,最后再将 `n-1` 层的盘子从第二个柱子移动到第三个柱子上,这样就完成了整个移动过程。
在 `main` 函数中,我们先让用户输入汉诺塔的层数,然后调用 `hanoi` 函数进行移动。
阅读全文