1 条题解
-
0
自动搬运
来自洛谷,原作者为

Igallta
「この世には愛も知らない人が 沢山いるんですよ」搬运于
2025-08-24 21:16:34,当前版本为作者最后更新于2024-08-28 18:15:08,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题意
把两个老师每题给的分全加起来,然后 再向上取整。
思路
首先,我们要输入。
根据我们总结的题意,我们还需要把所有分数加起来。
因为我们尽量要让时间更少,能放在一起做的操作,就放在一起。
所以这里输入和累加在一个循环里。
cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; m+=a[i]; } for(int i=1;i<=n;i++){ cin>>b[i]; m+=b[i]; }然后,我们要处理“向上取整”,这里我们的 C++ 帮我们提供了一个函数,叫做
ceil,它需要传入一个double类型的数据,它会返回一个double类型的数据,代表向上取整的结果。注意到我们的 是
int类型,所以我们做最后一步操作的时候,需要把 转换为double类型。我们只需要把
m/2改为m/2.0就可以了,这样编译器就会认为这是一个浮点数。最后,因为
ceil返回的是double,可能会有精度误差导致 WA,所以要转换为int类型。这部分的代码:
cout<<(int)ceil(m/2.0);一些扩展小知识
我们现在知道了向上取整是
ceil函数,那么向下取整呢?叫做floor。和ceil一样,都是传入double,返回double。相信也有一些同学知道“四舍五入”这个概念,它在 C++ 中的函数是
round,用于四舍五入,也是传入double返回double。
- 1
信息
- ID
- 10623
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者