• 课堂练习之书费问题


    题目:书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:

                                   本数                  折扣

                                       2                       5%

                                       3                       10%

                                       4                       20%

                                       5                       25%

    根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
    设计算法能够计算出读者购买一批书的最低价格。
    思路:
         根据题目可以清楚点的知道在1-5本之间时,购买1、2、3、4、5本不同书籍最省钱,6本时是5+1,7本时是5+2,8本时是4+4,9本时是5+4,以上是最省钱的购买方式。
    即假设购买的书籍是n本,则花费最少的金额为w,当n%5=0时,w=n*8*0.75;当n%5=1时,w=(n-1)*8*0.75+8;当n%5=2时,w=(n-2)*8*0.75+8*2*0.95;
    当n%5=3时,w=(n-8)*8*0.75+8*8*0.8;当n%5=4时,w=(n-4)*8*0.75+4*8*0.8。以上就可以的得出最少花费的购买书籍的方式。
    源代码:
     1 #include <iostream>
     2 using namespace std;
     3 
     4 void main()
     5 {
     6     int n;//n为要购买书籍的数量
     7     double w;//w为购买书籍所花费最少的金额
     8     for(;;)
     9     {
    10         cout<<"请输入要购买书籍的数量:"<<endl;
    11         cin>>n;
    12         //按照购买不同数量书籍的情况来设计不同的表达式
    13         if(n%5==0)
    14         {
    15             w=n*8*0.75;
    16         }
    17         else if(n%5+5==6)
    18         {
    19             w=(n-1)*8*0.75+8;
    20         }
    21         else if(n%5+5==7)
    22         {
    23             w=(n-2)*8*0.75+2*8*0.95;
    24         }
    25         else if(n%5+5==8)
    26         {
    27             w=(n-8)*8*0.75+8*8*0.8;
    28         }
    29         else if(n%5+5==9)
    30         {
    31             w=(n-4)*8*0.75+4*8*0.8;
    32         }
    33         cout<<"买这批书花费最少为:"<<w<<""<<endl;
    34     }
    35 }

    结果截图:

    个人总结:

          看到以上这类问题时,要用笔在纸上划一划,找找规律基本就能解决问题。

  • 相关阅读:
    深入理解transformer
    背景图片随子文字组件的宽度变化
    postgres 中报错 org.quartz.JobPersistenceException: Couldn't store trigger,invalid stream header
    chm 帮助文档制作
    sql中char(9) char(10) char(13)分别代表哪个字符
    前端周刊第二十四期
    前端周刊第二十三期
    现代化前端规范:工具+代码
    冒泡算法
    Linux 知识集锦
  • 原文地址:https://www.cnblogs.com/liguoshuai/p/5543021.html
Copyright © 2020-2023  润新知