购买图书

本文介绍了一种计算《哈利波特》系列书籍促销活动中最低购买价格的算法。通过分析不同购买数量对应的折扣规则,设计出最优购买策略。源代码采用C++实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

                                  本数                    折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
 
解决思路:
 
6本时:1本+5本最优;
7本时:2本+5本最优;
8本时:4本+4本最优;
9本时:4本+5本最优。
买10本时选择“5+5”,优惠价格为20;当购买价格超过10本时,根据规律发现,选择10本十本买,最后根据1-10的本数选择最优惠方法就能求得最为优惠价格。
 
源代码:
 1 #include<iostream>
 2 using namespace std;
 3 
 4 void TheCheapestPrice(int number)
 5 {
 6     int count = 0;
 7     double price;     //10本以内的优惠价格 
 8     double sum;
 9     count = number / 10;
10 
11     switch (number % 10)
12     {
13     case 0:price = 0; break;
14     case 1:price = 0; break;
15     case 2:price = 0.8; break;
16     case 3:price = 2.4; break;
17     case 4:price = 6.4; break;
18     case 5:price = 10; break;
19     case 6:price = 10; break;
20     case 7:price = 10.8; break;
21     case 8:price = 12.8; break;
22     case 9:price = 16.4; break;
23     }
24 
25     sum = number * 8 - count * 20 - price;//总价格减去优惠价格
26     cout << "最低价格为: " << sum<<endl;
27 }
28 
29 int main()
30 {
31     int Book_Num = 0;
32     cout << "请输入需要购买的书籍数量: ";
33     cin >> Book_Num;
34     TheCheapestPrice(Book_Num);
35     return 0;
36 }

 

结果截图:
 

转载于:https://www.cnblogs.com/X-knight/p/5557900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值