C++递归算法解决汉诺塔问题
本代码通过递归函数 solveHanoi
解决经典的汉诺塔问题,并在每一步移动操作后输出相应步骤,清晰展示解决问题的过程。
#include
using namespace std;
void solveHanoi(int n, char source, char auxiliary, char destination) {
if (n == 1) {
cout << "将圆盘从 " << source>> numDisks;
solveHanoi(numDisks, 'A', 'B', 'C');
return 0;
}
代码说明:
solveHanoi
函数接受四个参数:圆盘数量n
,源柱子source
,辅助柱子auxiliary
和目标柱子destination
。- 当
n
为 1 时,直接将圆盘从源柱子移动到目标柱子。 - 当
n
大于 1 时,递归调用solveHanoi
函数三次:- 将
n-1
个圆盘从源柱子移动到辅助柱子。 - 将最大的圆盘从源柱子移动到目标柱子。
- 将
n-1
个圆盘从辅助柱子移动到目标柱子。
- 将
1.46KB
文件大小:
评论区