作业比赛编号 : 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 执行步骤

  1. 输入整数 n,表示接下来要输入 n 个数
  2. 初始化累加器 s = 0
  3. 进入 for 循环,从 1n 共执行 n
  4. 每次循环:先 cin >> a 输入一个数,再累加 s += a
  5. 循环结束后,s 即为所有输入数的总和,输出 s
输入:510 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;

比赛尚未开始或私有,不能查看题目。




返回上一页