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
评论区