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

发布于:2025-04-09 ⋅ 阅读:(22) ⋅ 点赞:(0)

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

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

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

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

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

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

****     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折

#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;
}


网站公告

今日签到

点亮在社区的每一天
去签到