任务:

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

2         5%

3        10%

4        20%

5        25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。 要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。(截止日期2015-5-12晚18:00)

1.设计思想:这是一道很经典的数学题,感觉很像奥林匹克那种竞赛题,所以只要做出把数学题算出来就可以很容易的编程实现了。首先,假设要购买N本书,购买1-5本书时,是购买N本为最低价;

Task 7 买书最低价格问题-LMLPHP

根据规律,可以得出N>9时  ,当N除以10所得余数为8时,最低价情况是N/10组5本书,两组4本书的组合;余数不为8时,最低价情况就是N/5组5本书,一组N%5本书的组合。然后根据这个规律把程序写出来即可。

2.源代码:

#include<iostream>
using namespace std; void main()
{
int n;
cout << "请输入购买数量:" << endl;
cin >> n; double price;
int i = n % ;
switch (i)
{
case :
price = n * * 0.75;
cout << "最低价是购买" << n / << "套整5卷书";
break;
case :
price = (n - ) * * 0.75 + ;
cout << "最低价是购买" << (n - ) / << "套整5卷书和五卷书中任意一本。" << endl;
break;
case :
price = (n - ) * * 0.75 + * * 0.95;
cout << "最低价是购买" << (n - ) / << "套整5卷书和五卷书中任意两本。" << endl;
break;
case :
price = (n - ) * * 0.75 + * * 0.8 * ;
cout << "最低价是购买" << (n - ) / << "套整5卷书和两套任意四卷" << endl;
break;
case :
price = (n - ) * * 0.75 + * * 0.8;
cout << "最低价是购买" << (n - ) / << "套整5卷书,和五卷书中任意四本。" << endl;
break;
} cout << "最低价格是:" << price << endl;
}

3.实验截图:

Task 7 买书最低价格问题-LMLPHP

Task 7 买书最低价格问题-LMLPHPTask 7 买书最低价格问题-LMLPHP

4.实验总结:(1)有人说写程序就是在做数学题,这道题就是一个很典型的例子,只有当把这道题做出来的时候才能变成程序.

(2)写程序很重要的一点就是要敢于尝试,如果什么也不干就妄想写出什么是不可能的。

(3)要善于寻找事物的规律,开始的时候大家都没有仔细地分析运算,每个人都在抱怨这道题有多难、多复杂,可是在真正动手之后找到规律了才焕然大悟这题是有多简单。可见实践和动手是非常重要的。

05-11 11:18