‹ 上一题 下一题 ›

g5-04154. GESP-5级-2023-09-单选-第06题 未做

1000 ms 256 MB 测试点 ? GESPGESP-52023-09单选客观题5级·递归递归

印度古老的汉诺塔传说:创世时有三根金刚柱,其中一柱从下往上按照大小顺序摞着 片黄金圆盘,当圆盘逐一从一柱借助另外一柱全部移动到另外一柱时,宇宙毁灭。移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。下面的 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;
}
  • A. Hanoi(B, C, A, N - 2)
  • B. Hanoi(B, A, C, N - 1)
  • C. Hanoi(A, B, C, N - 2)
  • D. Hanoi(C, B, A, N - 1)
未选择
输入
输出

            
答案