第八届蓝桥杯大赛软件赛省赛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;
}
相关推荐
程序员老舅2 小时前
C++音视频开发:基础面试题
c++·ffmpeg·音视频·视频编码·h264·音视频编解码·视频解码
lifallen5 小时前
深入解析RocksDB的MVCC和LSM Tree level
大数据·数据结构·数据库·c++·lsm-tree·lsm tree
君鼎5 小时前
Effective C++ 条款18:让接口容易被正确使用,不易被误用
c++
whxnchy5 小时前
C++刷题 - 7.27
开发语言·c++
白日梦想家-K6 小时前
题单【模拟与高精度】
开发语言·c++·算法
岁忧6 小时前
(LeetCode 面试经典 150 题) 138. 随机链表的复制 (哈希表)
java·c++·leetcode·链表·面试·go
君鼎6 小时前
Effective C++ 条款17:以独立语句将newed对象置入智能指针
c++
极客BIM工作室7 小时前
深入理解C++中的Lazy Evaluation:延迟计算的艺术
开发语言·c++
只会蓝桥杯能算acmer吗8 小时前
面试小总结
面试·职场和发展
小指纹9 小时前
图论-最短路Dijkstra算法
数据结构·c++·算法·深度优先·图论