OneCoder Avatar
OneCodercoderli.com · 958 篇博文
【GESP】C++一级练习BCQM3025,输入-计算-输出-6📷 题解插图

【GESP】C++一级练习BCQM3025,输入-计算-输出-6

📅 2024-09-29·✍️ OneCoder·计算中...·⏱️ 4 分钟
#GESP#C++#基础语句

题型与BCQM3024一样,计算逻辑上稍微复杂了一点点,代码逻辑没变,仍属于小学3,4年级的题目水平。

BCQM3025 输入-计算-输出-6

题目要求

描述

育才小学四年级二班共有n人,其中参加语文兴趣小组的有a个人,参加数学兴趣小组的有b个人,两者都参加的有c个人,那么有多少人两个小组都没有参加?

输入

在一行输入正整数 nn (0<n10000)(0 < n \leq 10000)aabbcc (a,b,cn(a,b,c \leq nc<min(a,b))c < \min(a,b))

输出

输出有多少人两个兴趣小组都没有参加。

输入样例

46 21 18 9

输出样例

CONSOLE 1 行
16

题目分析

代码逻辑不再赘述,稍微介绍一下计算逻辑,这个问题可以通过集合的方式来分析,下面详细讲解解题思路:

1. 分析已知条件

  • 学校四年级二班有 nn 个人。
  • 参加语文兴趣小组的有 aa 个人。
  • 参加数学兴趣小组的有 bb 个人。
  • 两个小组都参加的有 cc 个人。

我们可以用集合来表示这些学生的分布:

  • 设参加语文兴趣小组的学生集合为 AA,那么 A=a|A| = a
  • 设参加数学兴趣小组的学生集合为 BB,那么 B=b|B| = b
  • 两个小组都参加的学生数量为 cc,即 AB=c|A \cap B| = c

2. 使用集合的公式

根据集合的加法原则,我们可以得到参加至少一个兴趣小组的学生数:

AB=A+BAB=a+bc|A \cup B| = |A| + |B| - |A \cap B| = a + b - c

其中,AB|A \cup B| 表示参加至少一个兴趣小组的学生数量。

3. 计算未参加任何小组的学生数

所有学生的总人数是 nn,因此没有参加任何兴趣小组的学生数就是: nAB=n(a+bc)n - |A \cup B| = n - (a + b - c)


示例代码

C++ 10 行
#include <iostream>
using namespace std;
int main() {
    int n, a, b, c;
    // 输入班级总人数n,参加语文兴趣小组的人数a,参加数学兴趣小组的人数b,两个小组都参加的人数c
    cin >> n >> a >> b >> c;
    // 计算两个兴趣小组都没有参加的人数:总人数 - (参加语文的人数 + 参加数学的人数 - 两个都参加的人数)
    cout << n - (a + b - c);
    return 0;
}

孩子的思想。小学的孩子不会集合原理,他用的是最朴素的逻辑,就是找到只上语文的(a-c) + 只上数学的(b-c) + 两个都上的c,那么剩下就是都不上的。化简后是一样的。代码如下:

C++ 12 行
#include <iostream>
using namespace std;
int main() {
    int n, a, b, c;
    // 输入班级总人数n,参加语文兴趣小组的人数a,参加数学兴趣小组的人数b,两个小组都参加的人数c
    cin >> n >> a >> b >> c;
    // 计算两个兴趣小组都没有参加的人数
    // 只上语文的人数:(a-c),只上数学的人数:(b-c),两个都上的人数:c
    // 因此都不上的人数 = 总人数 - (只上语文的 + 只上数学的 + 两个都上的)
    cout << n - ((a - c) + (b - c) + c);
    return 0;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

读者讨论与留言

0 条讨论
✨ 支持点击留言直接回复 · Markdown 引用格式
💬 还没有读者留言,快来成为第一个讨论者吧!