正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-J 2026 第一轮真题 › 第 6 题

CSP-J 2026 第一轮 第 6 题:执行下列代码后 s 的值是

单项选择 · 枚举与模拟 · 答案 D

题目

执行下列代码后 s 的值是( )。

int s = 0;
for (int i = 1; i <= 100; i++)
    if (i % 3 == 0 || i % 5 == 0)
        s += i;

选项

  • A. 3048
  • B. 2733
  • C. 2318
  • D. 2418

答案

D

题解

这段代码把 1~100(包含 100)中,能被 3 或 5 整除的数加到 s 中。|| 表示“或者”,满足其中一个条件就会累加。

用“容斥法”计算:

  • 3 的倍数:3、6、…、99,共 33 个,和为

\[ \frac{(3+99)\times33}{2}=1683 \]

  • 5 的倍数:5、10、…、100,共 20 个,和为

\[ \frac{(5+100)\times20}{2}=1050 \]

  • 15 的倍数同时属于上面两类,被重复计算了一次,需要减去:

\[ 15+30+45+60+75+90=315 \]

所以: \[ s=1683+1050-315=\boxed{2418} \]

选 D。注意:代码中每个数只累加一次,减去重复部分是我们手工计算时需要做的。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号