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 函数三次:
    1. n-1 个圆盘从源柱子移动到辅助柱子。
    2. 将最大的圆盘从源柱子移动到目标柱子。
    3. n-1 个圆盘从辅助柱子移动到目标柱子。
md 文件大小:1.46KB