正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2026 第一轮真题 › 第 6 题
CSP-J 2026 第一轮 第 6 题:执行下列代码后 s 的值是
题目
执行下列代码后 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号