课堂作业之买书问题
1.问题
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。请设计算法能够计算出读者购买一批书的最低价格。
2.设计思路:
对于买5本以下的书,则按成套买(即一卷买一本)最便宜;而对于5本到10本的话,除了8本书以外,其余的都买一套后,再买一套不全的(如9本,就买5本加4本)最便宜。
对于8本,则是买两套4本的最便宜;对于10本以上,则按5到10本来买,如11=5+6,13=5+8,20=5+5+5+5.
3.代码
#include<iostream> using namespace std; void main () { int x,a; double y; cout<<"输入要买购买的书数"; cin>>x; if(x%5==0) { y=(x/5*40*0.75); } else if(x%5==1) { y=(x/5*40*0.75+8); } else if(x%5==2) { y=(x/5*40*0.75+16*0.95); } else if(x%5==3&&x!=3) { y=(x/5-1)*40*0.75+32*0.8*2; } else if(x%5==3&&x==3) { y=24*0.9; } else if(x%5==4) { y=(x/5*40*0.75+32*0.8); } cout<<y; }
4.截图:
5.总结
这道题需要仔细列举,发现规律,发现规律之后理清思路。编写出程序并不算难。