汉诺塔问题:古代有⼀个梵塔,塔内有三个座 A、B、C , A 座上有 $n$ 个盘⼦,盘⼦⼤⼩不等,⼤的在下,⼩的在上。有⼀个和尚想把这 $n$ 个盘⼦从 A 座移到 B 座,但每次只能允许移动⼀个盘⼦,并且在移动过程中, $3$ 个座上的盘⼦始终保持⼤盘在下,⼩盘在上,程序如下:
01 #include<iostream>
02 using namespace std;
03 void hanoi(int n, char a, char b, char c) {
04 if (n == 1)
05 cout << n << " " << a << " " << c << endl;
06 else {
07 hanoi(n - 1, a, c, b);
08 cout << n << " " << a << " " << c << endl;
09 hanoi(n - 1, b, a, c);
10 }
11 }
12 int main() {
13 int n;
14 cin >> n;
15 hanoi(n, 'A', 'B', 'C');
16 return 0;
17 }
1. B。
2. B。
3. A。
4. A。
5. B。
6. B。
⽤递归实现汉诺塔问题。