




















CSP-X 2018真题-小明的照片,一道纯粹的数学计算题,考察基本的输入输出与加减法运算。适合GESP一级及以上考生练习,难度⭐。
国庆假期,小明和爸爸妈妈一起外出旅游,沿途拍摄了很多美丽的风景照片,在返程的前一天晚上,他整理了一下所有的照片:手机里有 $x$ 张,平板电脑里有 $y$ 张,单反相机里有 $z$ 张。小明计划开学后拿出 $n$ 张照片与同学们分享,请问他至少还需要再拍摄多少张照片?
一行,四个正整数 $n,x,y,z$,中间用空格隔开。
输入的数据保证现有的照片总数不超过 $n$。
一行,只有一个整数,表示还需要再拍摄的照片数量。
原题没有数据范围,我们将给出合理的数据范围。
对于 $100\%$ 的数据,保证 $1\leq x,y,z\leq n\leq 10^9$。
本题是一道极其简单的数学计算题,属于入门级别的签到题,考察的核心是对题意的理解以及基本的加减运算。
解题思路分析:
int 类型的表示范围(约 $2.1 \times 10^9$)之内,所以使用 int 即可。int 的范围。为了代码的安全性和良好编程习惯,可以改用减法来避免溢出:先用 $n$ 减去 $x$,再减去 $y$,最后减去 $z$,即 n - x - y - z,这样中间结果始终不超过 $n$ 的值,不会发生溢出。复杂度分析:
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),考试认证学员交流,互帮互助
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。