• 购买图书最优惠问题


    一、题目
     
    书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
                                   本数                  折扣
                                       2                       5%
                                       3                       10%
                                       4                       20%
                                       5                       25%
     
    根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
    设计算法能够计算出读者购买一批书的最低价格。
    要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。
    二,设计思路
    先求出购买5本到10本书时的不同购买方式的折扣,以此观察如何购买能够得到最大的优惠
    6本书:(1)1+5:5*8*0.25=10              7本书:(1)2+5:2*8*0.05+5*8*0.25=10.8
           (2)2+4:2*8*0.05+4*8*0.2=7.2            (2)3+4:3*8*0.1+4*8*0.2=6.64
           (3)3+3:3*8*0.1*2=4.8 
    8本书:(1)3+5:3*8*0.1+5*8*0.25=12.4    9本书:(1)4+5:4*8*0.2+5*8*0.25=16.4
           (2)4+4:4*8*0.2*2= 12.8  
    根据上面的式子可算出能够凑出5本书时折扣最低(除购买8本),当购买数目为8本时,采用4+4的购买方式能得到最大的折扣。

    三,程序代码

     1 #include<iostream.h>
     2 #include<conio.h>
     3 #define p 8
     4 int main()
     5 {
     6     int num;
     7     double money;
     8     int shang,yu;
     9     int jixu;
    10     cout<<"请输入购书的数目:"<<endl;
    11     cin>>num;
    12     shang=num/5;
    13     yu=num%5;    
    14     if(num==3)
    15     {
    16         money=3*p*0.9;
    17     }
    18     else
    19     {
    20         money=shang*5*p*0.75;
    21         switch(yu)
    22         { 
    23         case 0:money=money;break;
    24         case 1:money=money+8;break;
    25         case 2:money=money+2*p*0.95;break;
    26         case 4:money=money+4*p*0.8;break;
    27         }
    28         if(yu==3)
    29         {
    30             money=(shang-1)*5*p*0.75+4*8*0.8*2;
    31         }
    32     }
    33     cout<<"所需最少人民币为"<<money<<""<<endl;
    34     cout<<"是否继续执行程序:(1,继续 0,退出)"<<endl;
    35     cin>>jixu;
    36     if(jixu==1)
    37     {
    38         cout<<endl;
    39         main();
    40     }
    41     else
    42     {
    43         return 0;
    44     }
    45     getch();
    46     return 0;
    47 }             

    四,实验总结
    本次实验相对简单,有了老师课上提供的注意事项,加上前面几次实验的积累,很快便完成了实验内容。结论:贵在积累。

  • 相关阅读:
    [Leetcode] Largest Rectangle in Histogram
    [Leetcode] Unique Binary Search Trees II
    [Leetcode] Remove Duplicates from Sorted List II
    [Leetcode] Container With Most Water
    [Leetcode] Trapping Rain Water
    [Jobdu] 题目1390:矩形覆盖
    [Leetcode] Integer to Roman
    [Leetcode] Word Break
    Notes on Convolutional Neural Networks
    lecture5-对象识别与卷积神经网络
  • 原文地址:https://www.cnblogs.com/xiaojin123/p/4429001.html
Copyright © 2020-2023  润新知