第八届蓝桥杯大赛软件赛省赛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;
}
相关推荐
大锦终4 分钟前
【C++】多态
c语言·开发语言·数据结构·c++
爱编程的小新☆9 分钟前
2025年第十六届蓝桥杯省赛JavaB组真题回顾
算法·职场和发展·蓝桥杯
虾球xz15 分钟前
游戏引擎学习第227天
c++·学习·游戏引擎
不知名。。。。。。。。36 分钟前
c++------模板进阶
开发语言·c++
OKay_J40 分钟前
蓝桥杯备赛笔记(嵌入式)
笔记·stm32·学习·蓝桥杯
牧木江44 分钟前
【从C到C++的算法竞赛迁移指南】第二篇:动态数组与字符串完全攻略 —— 写给C程序员的全新世界
c语言·c++·经验分享·笔记·算法
淋过很多场雨1 小时前
现代c++获取linux系统版本号
linux·开发语言·c++
低技术力的Ayase1 小时前
[UEC++]UE5C++各类变量相关知识及其API(更新中)
开发语言·c++·ue5
天才测试猿1 小时前
接口测试之postman使用指南
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman
YXXY3132 小时前
C/C++内存管理
c++