#3324. [GESP202309 五级 C++] 第 6 题
[GESP202309 五级 C++] 第 6 题
印度古老的汉诺塔传说:创世时有三根金刚柱,其中一柱从下往上按照大小顺序摞着64片黄金圆盘,当圆盘逐一从一柱借助另外一柱全部移动到另外一柱时,宇宙毁灭。移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。下面的C++代码以递归方式实现汉诺塔,横线处应填入代码是( )。
#include <iostream>
using namespace std;
// 递归实现汉诺塔,将N个圆盘从A通过B移动C
// 圆盘从底到顶,半径必须从大到小
void Hanoi(string A, string B, string C, int N) {
if (N == 1) {
cout << A << " -> " << C << endl;
} else {
Hanoi(A, C, B, N - 1);
cout << A << " -> " << C << endl;
_________; // 此处填写代码
}
}
int main() {
Hanoi("甲", "乙", "丙", 3);
return 0;
}
{{ select(1) }}
Hanoi(B, C, A, N - 2)Hanoi(B, A, C, N - 1)Hanoi(A, B, C, N - 2)Hanoi(C, B, A, N - 1)