惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
B
Blog
F
Fortinet All Blogs
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
A
About on SuperTechFans
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog
B
Blog RSS Feed

OneCoder

【GESP】C++三级、四级练习 luogu-P2089 烤鸡 【NOIP】1997真题解析 luogu-P2241 统计方形(数据加强版) GESP三、四级以上可练习 【GESP】C++四级练习 luogu-P1296 奶牛的耳语 【CSP】CSP-J 2022 第一轮真题解析(三):完善程序题 【GESP】C++五级练习 luogu-P3743 小鸟的设备 【CSP】CSP-J 2022 第一轮真题解析(二):阅读程序题 【CSP】CSP-J 2022 第一轮真题解析(一):单项选择题 【CSP】CSP-J 2023 第一轮真题解析(三):完善程序题 【CSP】CSP-J 2023 第一轮真题解析(二):阅读程序题 【GESP】C++五级练习 luogu-P1678 烦恼的高考志愿 【CSP】CSP-J 2023 第一轮真题解析(一):单项选择题 【CSP】CSP-J 2024 第一轮真题解析(三):完善程序题 【CSP】CSP-J 2024 第一轮真题解析(二):阅读程序题 【CSP】CSP-J 2024 第一轮真题解析(一):单项选择题 【NOIP】2015真题解析 luogu-P2678 跳石头(适合GESP六级以上练习) 【GESP】C++六级练习 luogu-B2174, 完全背包 【NOIP】2005真题解析 luogu-P1048 采药(适合GESP六级以上练习) 【GESP】C++六级真题 luogu-P17013, [GESP202606 六级] 满二叉树 【GESP】C++六级真题 luogu-P17012, [GESP202606 六级] 条形蛋糕 【GESP】C++五级真题 luogu-P17011 [GESP202606 五级] 晚宴 【GESP】C++五级真题 luogu-P17010 [GESP202606 五级] 排排坐 【GESP】C++四级真题 luogu-B4558 [GESP202606 四级] 身高体重指数 【GESP】C++四级真题 luogu-B4557 [GESP202606 四级] 扫雷 【GESP】C++三级真题 luogu-B4556 [GESP202606 三级] 字符转换 【GESP】C++三级真题 luogu-B4555 [GESP202606 三级] 加密 【GESP】C++二级真题 luogu-B4554 [GESP202606 二级] 菱形 【GESP】C++二级真题 luogu-B4553 [GESP202606 二级] 完全平方数计数 【GESP】C++一级真题 luogu-B4551 [GESP202606 一级] 去旅行 【GESP】C++一级真题 luogu-B4552 [GESP202606 一级] 交税 【NOIP】2000真题解析 luogu-P1023 税收与补贴问题(适合GESP四、五级以上练习)
【CSP】CSP-X 2018真题 小明的照片 luogu-B4072 (适合GESP一...
OneCoder · 2026-06-18 · via OneCoder

CSP-X 2018真题-小明的照片,一道纯粹的数学计算题,考察基本的输入输出与加减法运算。适合GESP一级及以上考生练习,难度⭐。

B4072 [CSP-X 2018] 小明的照片

题目要求

题目描述

国庆假期,小明和爸爸妈妈一起外出旅游,沿途拍摄了很多美丽的风景照片,在返程的前一天晚上,他整理了一下所有的照片:手机里有 $x$ 张,平板电脑里有 $y$ 张,单反相机里有 $z$ 张。小明计划开学后拿出 $n$ 张照片与同学们分享,请问他至少还需要再拍摄多少张照片?

输入格式

一行,四个正整数 $n,x,y,z$,中间用空格隔开。

输入的数据保证现有的照片总数不超过 $n$。

输出格式

一行,只有一个整数,表示还需要再拍摄的照片数量。

输入输出样例 #1

输入 #1
输出 #1

说明/提示

原题没有数据范围,我们将给出合理的数据范围。

对于 $100\%$ 的数据,保证 $1\leq x,y,z\leq n\leq 10^9$。


题目分析

本题是一道极其简单的数学计算题,属于入门级别的签到题,考察的核心是对题意的理解以及基本的加减运算。

解题思路分析:

  1. 理解题意
    • 小明手上现在有三台设备拍摄的照片,总数为 $x + y + z$。
    • 他需要凑齐 $n$ 张照片与同学分享。
    • 题目保证了现有照片总数不超过 $n$,即 $x + y + z \leq n$。
    • 求的是还差多少张照片,即 $n - (x + y + z)$。
  2. 计算公式
    • 答案直接为:$n - x - y - z$
    • 由于题目保证了 $x + y + z \leq n$,因此结果一定是非负整数,不需要特殊处理。
  3. 数据类型注意
    • 由于 $n$ 最大可达 $10^9$,在 int 类型的表示范围(约 $2.1 \times 10^9$)之内,所以使用 int 即可。
    • 但加法 $x + y + z$ 三个数最大各为 $10^9$,相加最大可能达到 $3 \times 10^9$,超出了 int 的范围。为了代码的安全性和良好编程习惯,可以改用减法来避免溢出:先用 $n$ 减去 $x$,再减去 $y$,最后减去 $z$,即 n - x - y - z,这样中间结果始终不超过 $n$ 的值,不会发生溢出。

复杂度分析:

  • 时间复杂度:$O(1)$,只需一次加减运算。
  • 空间复杂度:$O(1)$,只使用几个整型变量。

示例代码

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>

int main() {
    int n, x, y, z;
    std::cin >> n >> x >> y >> z;

    // 直接计算差值,用连续减法避免中间结果溢出
    std::cout << n - x - y - z << std::endl;

    return 0;
}


所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

GESP 学习专题站:GESP WIKI

"luogu-"系列题目可在洛谷题库进行在线评测。

"bcqm-"系列题目可在编程启蒙题库进行在线评测。

欢迎加入Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答

欢迎加入C++ GESP/CSP认证学习QQ频道,考试资源总结汇总

欢迎加入C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助

GESP/CSP 认证学习微信公众号

GESP/CSP 认证学习微信公众号