#include <stdio.h>
// 打印执行过程
void print_move(char start, char end, int n);
// a:初始柱子 b:中间柱子 c:目标柱子
void hanoi(char a, char b, char c, int n);
int main() {
hanoi('A', 'B', 'C', 3);
}
void print_move(char start, char end, int n) {
printf("第 %d 个圆盘 : %c -> %c \n", n, start, end);
}
void hanoi(char a, char b, char c, int n) {
if (n == 1) {
// 如果只有一个圆盘, 直接将圆盘从 a 柱挪到 c 柱
print_move(a, c, n);
} else {
// 如果有 n 个柱子, 将 n-1 个柱子从 a 挪到 b
hanoi(a, c, b, n - 1);
// 将 a 剩下的最后一个圆盘从 a 挪到 c
print_move(a, c, n);
// 再将 b 柱 n-1 个圆盘从 b 挪到 c
hanoi(b, a, c, n - 1);
}
}