题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示: 本数 折扣 2 5% 3 10% 4 20% 5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。 要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。(截止日期2015-4-15晚18:00)
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int num; 6 int num1; 7 int num2; 8 int num3; 9 10 cout << "printf number of books"; 11 cin >> num; 12 13 if (num >= 1 && num <= 5) 14 cout << "买" << num << "中不同的书即可"; 15 else 16 { 17 switch (num) 18 { 19 case 6: 20 cout << "买5+1的套餐"; 21 break; 22 case 7: 23 cout << "买5+2的套餐"; 24 break; 25 case 8: 26 cout << " 买4+4的套餐"; 27 break; 28 case 9: 29 cout << "买5+4的套餐"; 30 break; 31 default: 32 num1 = num / 5; 33 num2 = num % 5; 34 num3 = num2 + 5; 35 switch (num3) 36 { 37 case 5: 38 cout << "其中" << num1 << "本是5本的套餐"; 39 break; 40 case 6: 41 cout << "其中"<<num1<<"本是5本的套餐剩下的一本单独买"; 42 break; 43 case 7: 44 cout << "其中" << num1 << "本是5本的套餐剩下的买2本的套餐"; 45 break; 46 case 8: 47 cout << "其中" << num1 - 1 << "本是5本的套餐其余的买4+4套餐"; 48 break; 49 case 9: 50 cout << "其中" << num1 << "本是5本的套餐剩下的买4本的套餐"; 51 break; 52 } 53 54 } 55 } 56 57 }
思考:当我们把买5本书的优惠下调到21%时上面的算法就不成立了,不能以5为单位去算,本题我计算了一下11本的5+5+1,4+4+3,12本的552和444发现5的折扣很给力把
只买1本的所谓亏损给赚回来了于是见5就合就可以了。