第八届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 购物单

小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。

这不,大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。

小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。

现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

取款机只能提供 100100 元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。

以下是让人头疼的购物单,为了保物品名称被隐藏了。物单,为了保物品名称被隐藏了。

cpp 复制代码
****     180.90       88折
****      10.25       65折
****      56.14        9折
****     104.65        9折
****     100.30       88折
****     297.15        半价
****      26.75       65折
****     130.62        半价
****     240.28       58折
****     270.62        8折
****     115.87       88折
****     247.34       95折
****      73.21        9折
****     101.00        半价
****      79.54        半价
****     278.44        7折
****     199.26        半价
****      12.97        9折
****     166.30       78折
****     125.50       58折
****      84.98        9折
****     113.35       68折
****     166.57        半价
****      42.56        9折
****      81.90       95折
****     131.78        8折
****     255.89       78折
****     109.17        9折
****     146.69       68折
****     139.33       65折
****     141.16       78折
****     154.74        8折
****      59.42        8折
****      85.44       68折
****     293.70       88折
****     261.79       65折
****      11.30       88折
****     268.27       58折
****     128.29       88折
****     251.03        8折
****     208.39       75折
****     128.88       75折
****      62.06        9折
****     225.87       75折
****      12.89       75折
****      34.28       75折
****      62.16       58折
****     129.12        半价
****     218.37        半价
****     289.69        8折
cpp 复制代码
#include <iostream>
#include <cmath>
using namespace std;

int main() {
    // 定义购物单上的价格和折扣
    double prices[] = {
        180.90, 10.25, 56.14, 104.65, 100.30, 297.15, 26.75, 130.62, 240.28, 270.62,
        115.87, 247.34, 73.21, 101.00, 79.54, 278.44, 199.26, 12.97, 166.30, 125.50,
        84.98, 113.35, 166.57, 42.56, 81.90, 131.78, 255.89, 109.17, 146.69, 139.33,
        141.16, 154.74, 59.42, 85.44, 293.70, 261.79, 11.30, 268.27, 128.29, 251.03,
        208.39, 128.88, 62.06, 225.87, 12.89, 34.28, 62.16, 129.12, 218.37, 289.69
    };
    double discounts[] = {
        0.88, 0.65, 0.9, 0.9, 0.88, 0.5, 0.65, 0.5, 0.58, 0.8,
        0.88, 0.95, 0.9, 0.5, 0.5, 0.7, 0.5, 0.9, 0.78, 0.58,
        0.9, 0.68, 0.5, 0.9, 0.95, 0.8, 0.78, 0.9, 0.68, 0.65,
        0.78, 0.8, 0.8, 0.68, 0.88, 0.65, 0.88, 0.58, 0.88, 0.8,
        0.75, 0.75, 0.9, 0.75, 0.75, 0.75, 0.58, 0.5, 0.5, 0.8
    };

    int n = sizeof(prices) / sizeof(prices[0]); // 购物单上的物品数量
    double total = 0.0; // 总金额

    // 计算打折后的总金额
    for (int i = 0; i < n; ++i) {
        total += prices[i] * discounts[i];
    }

    // 向上取整到最接近的100元的倍数
    int cash = ceil(total / 100.0) * 100;

    // 输出结果
    cout << cash << endl;

    return 0;
}
相关推荐
·云扬·1 小时前
【Leetcode hot 100】101.对称二叉树
算法·leetcode·职场和发展
自动驾驶小卡4 小时前
boost::circular_buffer的使用方法简介
c++·boost·circular_buffer
睡不醒的kun6 小时前
leetcode算法刷题的第三十二天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
乔宕一8 小时前
stm32 链接脚本没有 .gcc_except_table 段也能支持 C++ 异常
c++·stm32·嵌入式硬件
SuperCandyXu8 小时前
P3205 [HNOI2010] 合唱队-普及+/提高
c++·算法·洛谷
_君落羽_8 小时前
ARM寄存器以及异常处理
c++
free9 小时前
基于librdkafa C++客户端生产者发送数据失败问题处理#2
c++·kafka
小柯J桑_9 小时前
Linux:线程封装
linux·运维·c++
doll ~CJ10 小时前
基于QVTKOpenGLNativeWidget的三维点云可视化实现
c++·qt·软件开发·三维点云可视化
42fourtytoo11 小时前
天津大学智算2026预推免机试第二批题目及代码c++
开发语言·c++·面试