#3725. [GESP202409 六级 C++] 第 7 题

[GESP202409 六级 C++] 第 7 题

以下 C++ 代码实现 nn 位的格雷码,则横线上应填写( )。

#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 生成 n 位的格雷码
vector<string> generate_graycode(int n) {
    vector<string> graycode_list;
    if (n <= 0) {
        return graycode_list;
    }

    // 初始1位格雷码
    graycode_list.push_back("0");
    graycode_list.push_back("1");

    // 迭代生成 n 位的格雷码
    for (int i = 2; i <= n; i++) {
        int current_size = graycode_list.size();

        for (int j = current_size - 1; j >= 0; j--) {
            graycode_list.push_back("1" + graycode_list[j]);
        }

        for (int j = 0; j < current_size; j++) {
            ________________ // 在此处填入代码
        }
    }

    return graycode_list;
}

{{ select(1) }}

  • graycode_list.push_back("0" + graycode_list[j]);
  • graycode_list[j] = "0" + graycode_list[j];
  • graycode_list.push_back("1" + graycode_list[j]);
  • graycode_list[j] = "1" + graycode_list[j];