·书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
·根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
·设计算法能够计算出读者购买一批书的最低价格。
设计思想:
首先前5本书的折扣肯定是全部买折扣最低。然后从第6本到第9本时。
第六本:5加1
第七本:5加2
第八本:4加4
第九本:5加4
所以只需要将所需要买的书除以5之后,然后将余数加上5和这几个相比较,最特殊的自然是8本的时候,然后在计算。
代码实现:
import java.util.Scanner;
public class BuyBook {
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要购买书本的数量:");
int booknumber = sc.nextInt();
int num=booknumber%5;//除5求余数
double price=0;
switch(num)
{
case 0://买的数量刚好为5的倍数
price=booknumber*8*0.75;
break;
case 1://买的数量除5余1
price=(booknumber-1)*8*0.75+8;
break;
case 2://买的数量除5余2
price=(booknumber-2)*8*0.75+2*8*0.95;
case 3://买的数量除5余3
if(booknumber==3)
{
price=3*8*0.9;
}
else
{
price=(booknumber-8)*8*0.75+2*4*8*0.8;
}
break;
case 4://买的数量除5余4
price=(booknumber-4)*8*0.75+4*8*0.8;
break;
}
System.out.println("购书的最低价格为"+price);
}
}
实现截图:
个人总结:
这次作业主要是找到其中的规律,然后就方便解决了。