作业比赛编号 : 2996 - 【CSPtch-Jing】循环2 | 求和
➕ C++ 求和与求乘积速查
固定范围求和/求乘积 · 输入多个数求和一、固定范围内的数全部求和 / 求乘积
💡 核心思路:用
for 循环遍历 x ~ y 之间的每一个数,逐个累加 / 累乘到一个变量中,最后输出。
1.1 求和模板
求 5~10 之间所有整数相加的和:
5 + 6 + 7 + 8 + 9 + 10
int s = 0; // ① 累加器初始化为 0(注意不能为其他值) for (int i = x; i <= y; i++) { s = s + i; // ② 把当前 i 加到 s 中 } cout << s;
⚠️ 关键点:累加器
s 必须初始化为 0,因为任意数 + 0 = 任意数(加法的单位元)。
1.2 求乘积模板
求 5~10 之间所有整数相乘的积:
5 × 6 × 7 × 8 × 9 × 10
int s = 1; // ① 累乘器初始化为 1(注意必须为 1,不能为 0) for (int i = x; i <= y; i++) { s = s * i; // ② 把当前 i 乘到 s 中 } cout << s;
💡 关键点:累乘器
s 必须初始化为 1,因为任意数 × 1 = 任意数(乘法的单位元)。若初始化为 0,则结果永远是 0。
1.3 求和 vs 求乘积 对比
➕ 求和(累加)
累加器初始值:0
核心语句:s += i
int s = 0; for (i = x; i <= y; i++) s += i;
✖️ 求乘积(累乘)
累乘器初始值:1
核心语句:s *= i
int s = 1; for (i = x; i <= y; i++) s *= i;
◆ ◆ ◆
二、求输入多个数相加的和
💡 场景:先输入一个整数
n 表示要输入的数的个数,然后输入 n 个数,求这 n 个数的总和。
2.1 模板代码
int n, a; cin >> n; // ① 先输入数的个数 int s = 0; // ② 累加器初始化为 0 for (int i = 1; i <= n; i++) { cin >> a; // ③ 每轮循环输入一个数 s = s + a; // ④ 累加到 s 中 } cout << s;
2.2 执行步骤
- 输入整数
n,表示接下来要输入n个数 - 初始化累加器
s = 0 - 进入 for 循环,从
1到n共执行n次 - 每次循环:先
cin >> a输入一个数,再累加s += a - 循环结束后,
s即为所有输入数的总和,输出s
输入:
5 → 10 20 30 40 50 ⇒ 输出:150
◆ ◆ ◆
三、知识拓展 · 求积 / 求平均
💡 基于"多次输入求和"模板,可以轻松变出求乘积和求平均两种变体。
✖️ 求 n 个数的乘积
int s = 1; // 初始值改为 1 for (int i = 1; i <= n; i++) { cin >> a; s *= a; // 累乘 }
📊 求 n 个数的平均
int s = 0; for (int i = 1; i <= n; i++) { cin >> a; s += a; } cout << (double)s / n;
