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

chen_zhe
Aya 敲可爱的~搬运于
2025-08-24 21:18:10,当前版本为作者最后更新于2025-05-09 20:58:25,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
欢迎报名洛谷网校,期待和大家一起进步!
本题考察循环结构。
根据题目意思,我们要看一个数的个位数。如果个位数是 (这些数字比较小,小于 ),我们就把个位数“舍去”,让它变成 。如果个位数是 (这些数字比较大,大于等于 ),我们就要“进位”。意思是,我们把个位数变成 ,然后让十位数增加 。这叫做“五入”。比如:
- ,个位数是 。我们把 舍去变成 ,所以 变成 。
- ,个位数是 。我们把 变成 ,然后 (十位数)增加 变成 。所以 变成 。
因此,我们使用循环结构读入 个数。对于每一个读入的数 ,首先先需要获取它的个位数。一个数除以 的余数,就是它的个位数。因此可以使用
x % 10得到结果。接着,我们判断个位数,如果个位数小于 ,那么,四舍五入后的数就是原来的数减去它的个位数。否则,如果个位数大于等于 ,那么,四舍五入后的数就是原来的数减去它的个位数,然后再加 。(这就相当于把个位变成 ,十位加 )。
int gewei = a % 10; // 计算个位数 if (gewei < 5) { // 如果个位数小于 5,“舍去” ans = a - gewei; } else { // 如果个位数大于等于 5,“进位” ans = a - gewei + 10; }拓展思考:如果不想使用分支结构,可以使用
ans = (a + 5) / 10 * 10做到四舍五入到整十位。想一想,这是为什么呢?
- 1
信息
- ID
- 11768
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者