GESP C++ 真题 · 逐题精解
首页C++八级真题 › 2024年12月 › 第10题

GESP 2024年12月 C++八级 单选题 第10题

C++八级单选题2024年12月第10题

所属知识点:加法原理 难度要求:掌握 考频:中频

下面程序的输出为:
int main() {
    int N = 15, cnt = 0;
    for (int x = 0; x + x + x <= N; x++)
        for (int y = x; x + y + y <= N; y++)
            for (int z = y; x + y + z <= N; z++)
                cnt++;
    cout << cnt << endl;
    return 0;
}

正确答案:A

题目解析
这三重循环在数满足 0≤x≤y≤z 且 x+y+z≤15 的三元组个数(代码里的 3x≤15、x+2y≤15 在 x≤y≤z 时会被 x+y+z≤15 自动保证,属于冗余约束)。也就是把 0~15 每个“和”拆成至多 3 个非降部分的方案总数,逐一枚举得 174 个,选 A。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习