zoukankan      html  css  js  c++  java
  • 买书问题

    书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号01234表示,单独一卷售价8元,具体折扣如下所示:
                                   本数                  折扣
                                       2                       5%
                                       3                       10%
                                       4                       20%
                                       5                       25%
    根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
    设计算法能够计算出读者购买一批书的最低价格。
     1 #include<iostream.h>
     2 int main(){
     3     int num;
     4     int m,n;
     5     float sum;
     6     cout<<"请输入要购买的书的本书:";
     7     cin>>num;
     8     m=num/5;
     9     n=num%5;
    10     if(num!=3)
    11     {
    12         switch(n)
    13         {
    14         case 0:
    15             sum=num*8*0.75;
    16             break;
    17         case 1:
    18             sum=m*5*8*0.75+8;
    19             break;
    20         case 2:
    21             sum=m*5*8*0.75+2*8*0.95;
    22             break;
    23         case 3:
    24             sum=(m-1)*5*8+4*8*0.8+4*8*0.8;
    25             break;
    26         case 4:
    27             sum=m*5*0.75+4*8*0.8;
    28             break;
    29         }
    30     }
    31     else
    32         sum=3*8*0.9;
    33     cout<<"读者购买一批书的最低价格为:"<<sum<<""<<endl;
    34     return 0;
    35 }

    截图:

     
    心得体会:
    做这道题时,我把6-10本的情况进行了计算:当买6本时,5本和1本买最便宜;买7本时,5本和2本买最便宜;买8本时,4本和4本买最便宜;买9本时,5本和4本最便宜;买10本时,5本和5本买最便宜。然后10以上的数我们可以看成这些的组合。比如11可以变成,5,5,1;12变成5,5,2。但有特殊的情况,当买的本数除以5时,余3的情况时,比如13,我们不能把他分成5,5,3,我们应该看成5,8,也就是5,4,4,这样的最便宜。所以,我们可以根据除以5的情况,来进行编程。
    这道题还是考验了一下数学的能力,虽然中间计算花了点时间,但是编程还是顺利的完成了。
  • 相关阅读:
    校门外的树
    学生档案
    冒泡排序法
    寻找最大数序列
    初识结构体
    找零钱
    冒泡的应用
    关于数组的逆序重放
    关于质数
    字符串转换为日期格式
  • 原文地址:https://www.cnblogs.com/xuqingtian/p/4429272.html
Copyright © 2011-2022 走看看