给出c++用递归方法计算汉诺塔问题的代码
时间: 2024-02-18 22:04:52 浏览: 67
C++基于递归算法解决汉诺塔问题与树的遍历功能示例
5星 · 资源好评率100%
好的,以下是C++递归实现汉诺塔问题的代码:
```c++
#include <iostream>
using namespace std;
void hanoi(int n, char A, char B, char C) {
if (n == 1) {
cout << "Move " << n << " from " << A << " to " << C << endl;
} else {
hanoi(n - 1, A, C, B);
cout << "Move " << n << " from " << A << " to " << C << endl;
hanoi(n - 1, B, A, C);
}
}
int main() {
int n;
cout << "Enter the number of disks: ";
cin >> n;
hanoi(n, 'A', 'B', 'C');
return 0;
}
```
其中,函数`hanoi`接受四个参数:n表示盘子个数,A、B、C表示三个柱子。当盘子个数为1时,直接将盘子从A柱移到C柱;否则,将n-1个盘子从A柱移到B柱,再将最后一个盘子从A柱移到C柱,最后将n-1个盘子从B柱移到C柱,递归结束。
阅读全文