• 蓝桥杯 购物单(使用word协助)



    标题: 购物单

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

    这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。
    小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。
    现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

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

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

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

    --------------------

    需要说明的是,88折指的是按标价的88%计算,而8折是按80%计算,余者类推。
    特别地,半价是按50%计算。

    请提交小明要从取款机上提取的金额,单位是元。
    答案是一个整数,类似4300的样子,结尾必然是00,不要填写任何多余的内容。

    解法:  

    首先将购物单复制粘贴到word里面

    然后点击开始出的替换(或者直接按ctrl+h),将****替换为空格,将折替换为空格,将半价替换为5。

     替换完之后变为这样:

     通过word查看其行数,发现这里一共有50行,所以可以开一个double arr[50][2]保存全部数据

     

    遍历这50个数据,如果arr[i][1]小于10,则 arr[i][1] *= 0.1  ,   如果arr[i][1]大于10,则arr[i][1] *= 0.01,最后求出总和,具体请看如下程序:

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 double d[50][2];
     6 
     7 int main()
     8 {
     9     for (int i = 0; i < 50; ++i)
    10         cin >> d[i][0] >> d[i][1];
    11 
    12     double sum = 0;
    13 
    14     for (int i = 0; i < 50; ++i)
    15     {
    16         if (d[i][1] < 10)
    17             d[i][1] *= 0.1;
    18         else
    19             d[i][1] *= 0.01;
    20         sum += d[i][0] * d[i][1];
    21     }
    22 
    23     cout << "-------------------------------------------------
    ";
    24     cout << sum << endl;
    25 
    26 
    27     return 0;
    28 }

     所以最终结果为5200.

  • 相关阅读:
    解决curl请求字段中带中文出错的问题
    字体下载
    Qt在windows与Mac OS中获取执行程序版本号
    QProcess启动不了外部程序的问题
    (Qt5Core.dll)处有未经处理的异常: 请求了严重的程序退出。
    QLabel
    解决接收命令行参数的数据中丢失双引号的问题
    QFile保留指定位置的数据
    ubuntu下使用docker安装部署openstf
    远程连接安卓设备步骤
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/10547349.html
Copyright © 2020-2023  润新知