Files
python/GESP/Mkx/Hanoi.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

29 lines
788 B
C++

#include <bits/stdc++.h>
using namespace std;
// 定义移动盘子的函数
void move(int n, char from, char to) {
printf("Move disk %d from %c to %c\n", n, from, to);
}
// 定义汉诺塔递归函数
void hanoi(int n, char a, char b, char c) {
if (n == 1) {
// 如果只有一个盘子,直接从起始柱子移动到目标柱子
move(1, a, c);
return;
}
// 将前 n-1 个盘子从起始柱子 A 借助目标柱子 C 移动到中间柱子 B
hanoi(n - 1, a, c, b);
// 将第 n 个盘子从起始柱子 A 移动到目标柱子 C
move(n, a, c);
// 将 n-1 个盘子从中间柱子 B 借助起始柱子 A 移动到目标柱子 C
hanoi(n - 1, b, a, c);
}
int main() {
int n;
cin >> n;
hanoi(n, 'A', 'B', 'C');
return 0;
}