买哈利波特书算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了买哈利波特书算法相关的知识,希望对你有一定的参考价值。

一:题目要求

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

本数

折扣

2

5%

3

10%

4

20%

5

25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

设计算法能够计算出读者购买一批书的最低价格。

要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。

二:设计思想

首先买5本以内肯定是全部购买最优,然后计算买6-10本,找出最优的买书算法,最优算法为:

        本数:    买书方法    优惠价格

         6本            5+1      30+8=38

         7本      5+2      30+15.2=45.2

         8本      4+4      25.6*2=51.2

         9本      5+4      30+25.6=55.6

        10本      5+5     30*2=60

所以将需要买的书除以10,然后余数是几,就按几本的方法去买,最后相加就是最优的买书算法。

代码:

 1 //买书最优算法
 2 //2016.5.31
 3 //纪烈翔
 4 #include<iostream>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     int num,num_zheng,num_yu;
10     double price;
11     cout << "请输入买书的 数量:" << endl;
12     cin >> num;
13     num_zheng = num / 10;
14     num_yu = num % 10;
15     price = 60 * num_zheng;
16     switch (num_yu)
17     {
18     case 1:
19         price += 8;
20         break;
21     case 2:
22         price += 15.2;
23         break;
24     case 3:
25         price += 21.6;
26         break;
27     case 4:
28         price += 25.6;
29         break;
30     case 5:
31         price += 30;
32         break;
33     case 6:
34         price += 38;//5+1
35         break;
36     case 7:
37         price += 45.2;//5+2
38         break;
39     case 8:
40         price += 51.2;//4+4(特殊)
41         break;
42     case 9:
43         price += 55.6;//5+4
44         break;
45     }
46     num_zheng = num / 5;
47     num_yu = num % 5;
48     if (num_yu == 3&&num_zheng>0)//当除以5余数为3时是特殊情况
49     {
50         cout << "买书方法为:先整套购买" << num_zheng-1 << "套,再购买两套,每套随意4本不同的书。总共的价格为:" << price << endl;
51     }
52     else
53     {
54         cout << "买书方法为:先整套购买" << num_zheng << "套,再随意购"<<num_yu<<"本不同的书。总共的价格为:" << price << endl;
55     }
56 }

 测试用例1:

技术分享

测试用例2:

技术分享

测试用例3:

技术分享

测试用例4:

技术分享

测试用例5:

技术分享

实验总结:

这次的实验题目比较简单,外加老师在课上得指点,算出前10种情况后,后面的就都有规律了,总体来说还是比较简单的。

以上是关于买哈利波特书算法的主要内容,如果未能解决你的问题,请参考以下文章

课堂练习-促销书

课堂练习-促销书

最优买书问题

最优买书问题

课堂练习---最低价格买书

软件工程作业—最优买书问题