某货币由 5 元、2 元和 1 元组成。输入金额(假设为正整数),计算出最少数量。为实现其功能,横线处应填入代码是( )。
int N;
cin >> N;
int M5, M2, M1;
M5 = N / 5;
M2 = _______________;
M1 = _______________;
printf("5*%d+2*%d+1*%d", M5, M2, M1);答案B。循环补全要分析循环变量的初始值、条件和更新方式,确保能产生目标输出。
代入法验证时注意选项之间的细微差别。循环条件中的<和<=可能导致完全不同的结果。
【考点】贪心策略|运算符优先级|整数除法取整
GESP 二级 C++ 第 3 章“基础算法”中的“贪心策略”。命题人专门卡住“先除再减”的操作顺序——很多孩子会直接写 N / 2 或 N - M5,完全没意识到要先把 5 元占用的金额减掉,这是“贪心”最基础的实现细节,也是绝大多数人丢分的地方。