✏️ 纠错
第 266 题 / 共 301 题
第 15 题 有个无限长的链,由3种外形相同但材质不同的环链成。3种环的重量分别是3、4、6克,相同材质的多个环每12克一组,分别记为G3、G4、G6。链依次G3、G4、G6、G3、G4、G6、…。同时对链上所有环从头依次编号1、2、3、4……。输入正整数代表环编号,求该编号前所有环(不含该环本身)的重量。下面是C++代码是实现,正确说法是( )。
int N, G, R;
int wc = 0;
cin >> N; // 输入正整数
G = (N - 1) / 9; // L1
R = (N - 1) % 9; // L2: 保存余数
wc += 36*G;
if(1 <= R && R <= 4)
wc += 3*R; // L3
else if((5 <= R) && (R <= 7))
wc += 4*(R-1); // L4
else if(R == 8)
wc += 6*(R - 1); // L5
cout << wc << endl;
int N, G, R;
int wc = 0;
cin >> N; // 输入正整数
G = (N - 1) / 9; // L1
R = (N - 1) % 9; // L2: 保存余数
wc += 36*G;
if(1 <= R && R <= 4)
wc += 3*R; // L3
else if((5 <= R) && (R <= 7))
wc += 4*(R-1); // L4
else if(R == 8)
wc += 6*(R - 1); // L5
cout << wc << endl;
你真棒!
📝 题目解析
【答案】D
【考纲知识点】基本运算、分支结构
【解析】根据题意,每9个环为一个周期,分别对应G3、G4、G6的组合,每个周期总重为3×4 + 4×3 + 6×2 = 12 + 12 + 12 = 36克。对于输入编号N,前N-1个环的重量由完整周期数G和剩余环数R决定。G = (N - 1) / 9正确计算了完整周期数,R = (N - 1) % 9正确得出余下环的位置。wc += 36 * G累加整周期重量无误。但后续判断中,R∈[1,4]对应G3组前4个3克环,应加3×R;R∈[5,7]对应G4组3个4克环,应加4×(R−4)+12,而非4×R;R=8时为G6组第1个6克环,应加6×1+24,而代码wc += 6 * (R−1)即6×7,明显错误。因此L4与L5均错,仅改一处无法修复,D正确。