买书求最大折扣
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了买书求最大折扣相关的知识,希望对你有一定的参考价值。
题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
分析:
通过枚举得出在购买的书为8本是会出现特殊情况,4,4,组合为最便宜的情况,而其他情况都是5+x最便宜
源代码:
#include <iostream> using namespace std; int main() { float price;//金额 int num;//购买数量 int num_s;//除10的商 int num_y;//除10的余数 cout<<"请输入购买的数量:"<<endl; cin>>num; num_s=num/5; num_y=num%5; if (num_y==0)//余数为0,则是5的整倍数, { price=num_s*5*8*0.75; } else if (num_y==1) { price=num_s*5*8*0.75+num_y*8; } else if(num_y==2) { price=num_s*5*8*0.75+num_y*8*0.95; } else if (num_y==3)//余数为3时,出现特殊情况,拿出一个5 ,与3凑成两个4; { if(num_s==0) { price=3*8*0.1; } else { price=(num_s-1)*5*8*0.75+4*8*0.8*2; } } else { price=num_s*5*8*0.75+num_y*8*0.8; } cout<<price<<endl; }
运行截图:
以上是关于买书求最大折扣的主要内容,如果未能解决你的问题,请参考以下文章