汉诺塔问题c++源代码
时间: 2023-09-01 19:07:23 浏览: 123
以下是汉诺塔问题的 C++ 源代码:
```cpp
#include <iostream>
using namespace std;
void move(int n, char a, char b, char c)
{
if (n == 1) {
cout << "Move disk 1 from " << a << " to " << c << endl;
return;
}
move(n - 1, a, c, b);
cout << "Move disk " << n << " from " << a << " to " << c << endl;
move(n - 1, b, a, c);
}
int main()
{
int n;
cout << "Enter the number of disks: ";
cin >> n;
move(n, 'A', 'B', 'C');
return 0;
}
```
在这个程序中,`move()` 函数使用递归的方式来解决汉诺塔问题。当只有一张盘子时,直接将它从起始位置移动到目标位置即可。否则,将前 n-1 个盘子从起始位置经过目标位置移到辅助位置,然后将第 n 张盘子从起始位置移到目标位置,最后将前 n-1 个盘子从辅助位置经过起始位置移到目标位置。
相关问题
蓝桥杯汉诺塔问题c++
蓝桥杯汉诺塔问题是经典的递归问题,源于古老的印度谜题,涉及到将一堆盘子从一根柱子移动到另一根柱子,规则是每次只能移动一个大盘子,并且大盘子永远不能放在小盘子上面。在C++中解决这个问题,通常会采用递归的方式来设计解决方案。
以下是基本的递归算法伪代码:
```cpp
void hanoi(int n, char from, char to, char aux) {
if (n > 0) {
// 将前n-1个盘子从from移动到aux
hanoi(n - 1, from, aux, to);
// 将第n个盘子从from移动到to
cout << "Move disk " << n << " from " << from << " to " << to << endl;
// 最后将aux上的n-1个盘子移动到to
hanoi(n - 1, aux, to, from);
}
}
```
你可以通过调用`hanoi(numDisks, 'A', 'C', 'B')`来解决汉诺塔问题,其中'A', 'B', 'C'分别代表源、辅助和目标柱子,`numDisks`是盘子的数量。
写一个汉诺塔问题的c++代码
汉诺塔是一个经典的递归问题,涉及三个柱子和一些大小不同的圆盘。目标是从第一个柱子将所有圆盘移动到第三个柱子,每次只能移动一个圆盘,并且大的圆盘永远不能放在小的上面。以下是使用C++实现的简单版本:
```cpp
#include <iostream>
using namespace std;
// 定义递归函数,传入源柱子、目标柱子和辅助柱子
void hanoi(int n, char from, char to, char aux) {
if (n > 0) { // 如果有圆盘
// 将最大的圆盘移到辅助柱子
hanoi(n - 1, from, aux, to);
// 然后将最大的圆盘从辅助柱子移到目标柱子
cout << "Move disk " << n << " from " << from << " to " << to << endl;
// 最后将剩余的小圆盘移到目标柱子
hanoi(n - 1, aux, to, from);
}
}
int main() {
int numDisks; // 圆盘的数量
cout << "Enter the number of disks: ";
cin >> numDisks;
hanoi(numDisks, 'A', 'C', 'B'); // 使用'A'代表第一根柱子,'B'代表第二根柱子,'C'代表第三根柱子
return 0;
}
```
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)