#3828. [GESP202509 六级 C++] 第 10 题

[GESP202509 六级 C++] 第 10 题

下面代码生成格雷编码,则横线上应填写( )。

vector<string> grayCode(int n) {
    if (n == 0) return {"0"};
    if (n == 1) return {"0", "1"};

    vector<string> prev = grayCode(n-1);
    vector<string> result;
    for (string s : prev) {
        result.push_back("0" + s);
    }
    for (_______________) { // 在此处填写代码
        result.push_back("1" + prev[i]);
    }
    return result;
}

A.

int i = 0; i < prev.size(); i++

B.

int i = prev.size()-1; i >= 0; i--

C.

auto s : prev

D.

int i = prev.size()/2; i < prev.size(); i++

{{ select(1) }}

  • A
  • B
  • C
  • D