课堂作业之买书问题

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.总结

  这道题需要仔细列举,发现规律,发现规律之后理清思路。编写出程序并不算难。

原文地址:https://www.cnblogs.com/double1/p/4491738.html