zoukankan      html  css  js  c++  java
  • 求买书的最低费用

    一.设计思路

      1.在主函数中输入购买书的数量;

      2.调用计算函数将购买的书的数量作为参数传递;

      3.在计算函数中给出折扣信息以及5本书以下的最低费用;

      4.由思考得知,1到10本书的最低费用是不同的计算,10本之后的最低费用计算都是在前10本书最低费用的基础上进行计算的;

      5.用switch将情况分为10类,计算最低费用;

      6.在主函数中输出所求得的最低费用;

      7.成功后添加购买方案。

    二.代码实现

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int display(int group, int values)
     5 {
     6     if (values == 0)
     7     {
     8         cout << "五本不同的书各买" << 2 * group << "本时,所花费用最低!" << endl;
     9     }
    10     else if (values < 5)
    11     {
    12         cout << "五本不同的书各买" << 2 * group << "本,再单买" << values << "本不同的书时,所花费用最低!" << endl;
    13     }
    14     else if (values == 5)
    15     {
    16         cout << "五本不同的书各买" << 2 * group + 1 << "本时,所花费用最低!" << endl;
    17     }
    18     else if (values == 8)
    19     {
    20         cout << "五本不同的书各买" << 2 * group << "本,再单买两套(每套四本不同的书)时,所花费用最低!" << endl;
    21     }
    22     else
    23     {
    24         cout << "五本不同的书各买" << 2 * group + 1 << "本,再单买" << values - 5 << "本不同的书时,所花费用最低!" << endl;
    25     }
    26     return 0;
    27 }
    28 
    29 double GetLowestPrice(int number)
    30 {
    31     double lowestprice;    //最低费用
    32     double price = 8;    //单价
    33     double discount[5] = { 0, 0.05, 0.1, 0.2, 0.25 };    //买1,2,3,4,5本书各自的折扣
    34     int group = number / 10;    //number除以10的商(每10本一组)
    35     int values = number % 10;    //number除以10的余数
    36     double base = 5 * 2 * (1 - discount[4]) * 8 * group;    //买10的整数倍本书的最低价格
    37     double price2 = price * 2 * (1 - discount[1]);    //买两本书的最低价格
    38     double price3 = price * 3 * (1 - discount[2]);    //买三本书的最低价格
    39     double price4 = price * 4 * (1 - discount[3]);    //买四本书的最低价格
    40     double price5 = price * 5 * (1 - discount[4]);    //买五本书的最低价格
    41     switch (values)
    42     {
    43     case 0:
    44         lowestprice = base; 
    45         display(group, values); break;
    46     case 1:
    47         lowestprice = base + price;
    48         display(group, values); break;
    49     case 2:
    50         lowestprice = base + price2;
    51         display(group, values); break;
    52     case 3:
    53         lowestprice = base + price3;
    54         display(group, values); break;
    55     case 4:
    56         lowestprice = base + price4;
    57         display(group, values); break;
    58     case 5:
    59         lowestprice = base + price5;
    60         display(group, values); break;
    61     case 6:
    62         lowestprice = base + price + price5;
    63         display(group, values); break;
    64     case 7:
    65         lowestprice = base + price2 + price5;
    66         display(group, values); break;
    67     case 8:
    68         lowestprice = base + price4 + price4;
    69         display(group, values); break;
    70     case 9:
    71         lowestprice = base + price4 + price5; 
    72         display(group, values);
    73     }
    74     return lowestprice;
    75 }
    76 
    77 int main()
    78 {
    79     int number;    //书的数量
    80     double LowestPrice;    //所购书的最低价
    81     cout << "请输入要购买的书的数量:";
    82     cin >> number;
    83     LowestPrice = GetLowestPrice(number);
    84     cout << "购买" << number << "本书所花的最低费用是:" << LowestPrice << "元!" << endl;
    85     return 0;
    86 }

    三.测试结果

    四.总结

      此次试验只要发现了每十个为一组的规律后,实验就非常简单了。

  • 相关阅读:
    phpmyadmi 上传大文件
    wget 命令用法详解
    cuDnn的安装ubuntu16.04环境下(tensorflow正式安装之前的必备安装操作)
    ubuntu16.04 源码安装Python3.7 (可以在此基础上安装Tensorflow) (确保Tensorflow计算框架与系统的彻底隔离)
    大工软件学院 校园网登录脚本
    UML图 之 活动图 (汇总版)
    详解UML图之类图 (转)
    Java中private、protected、public和default的区别 (转)
    AI产业将更凸显个人英雄主义 周志华老师的观点是如此的有深度
    对什么样的人应该敬而远之
  • 原文地址:https://www.cnblogs.com/pengchengwanli/p/5543898.html
Copyright © 2011-2022 走看看