#include 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; }