GESP 五级 · GESP 202406 C++ 五级 第 2 题

选择题 · 答案 B · 考点:贪心算法、算法、循环控制

← 整套速查表 GESP 五级 全部真题

题目

下面 C++ 代码用于将输入金额换成最少币种组合方案,其实现算法是( )。

#include <iostream>
using namespace std;

#define N_COINS 7
int coins[N_COINS] = {100, 50, 20, 10, 5, 2, 1}; //货币面值,单位相同
int coins_used[N_COINS];

void find_coins(int money) {
    for (int i = 0; i < N_COINS; i++) {
        coins_used[i] = money / coins[i];
        money = money % coins[i];
    }
    return;
}

int main() {
    int money;
    cin >> money;  //输入要换算的金额

    find_coins(money);
    for (int i = 0; i < N_COINS; i++)
        cout << coins_used[i] << endl;

    return 0;
}
答案:B

考点

贪心算法 讲解 →贪心算法 真题汇总 →算法循环控制

解题思维

仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】贪心算法|枚举算法|循环控制

1. 🎯 考纲定位

本题考查 GESP 五级"算法策略"模块中的贪心算法。命题人故意选贪心而非枚举,卡住的是大量考生对"算法策略"与"程序结构"概念的混淆——五级学生最容易把"用循环写程序"等同于"迭代算法",把"尝试所有方案"等同于"枚举算法",这道题就是考你是否真的理解算法策略的本质。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断