1 条题解

  • 0
    @ 2025-8-24 22:31:37

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Cripple_Abyss
    **

    搬运于2025-08-24 22:31:37,当前版本为作者最后更新于2021-06-20 20:56:26,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    Description :

    • 小可可购买了 nn 个商品,第 ii 个价格为 aia_i 元,买了 bib_i 个。

    • 求在打了八五折的基础上需要付多少钱。

    • 去尾法\color{red}\text{去尾法} 保留一位小数!!!(这个在考场上害了许多人)

    Solution :

    • 模拟,每次加上 ai×bia_i \times b_i

    • 主要还是如何用去尾法保留一位小数:

    • 这里介绍一个比较好理解的方法,将最后的答案减去 0.49,然后在四舍五入。

    • 为什么是 0.49 而不是 0.5 ???

    • 我在考场调了很长时间,结果发现在 C++ 中是“四舍六入五成双” !!!

    • 这里 “四” 是指 4\le4 时舍去,"六" 是指 6\ge6 时进一。

    • 最复杂的是 “五” , "五" 指的是根据 5 后面的数字来定,当 5 后有数时,舍 5 进 1 ;当 5 后无有效数字时,需要分两种情况来讲:5 前为奇数,舍 5 入 1 ;5 前为偶数,舍 5 不进( 0 是偶数)。

    Code(我的考场代码):

    #include <cstdio>
    int n,b;
    float a,ans; 
    int main() {
    	scanf("%d",&n);
    	while (n--) {
    		scanf("%f%d",&a,&b);
    		ans+=a*b;
    	}
    	printf("%.1f",ans*0.85-0.049);
    	return 0;
    }
    
    
    • 1

    信息

    ID
    6750
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者