1.题目要求:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
2.设计思想:
购书数量 | 优惠价格 | 最低价格 |
1 | 0 | 8 |
2 | 0.8 | 15.2 |
3 | 2.4 | 21.6 |
4 | 6.4 | 25.6 |
5 | 10 | 30 |
6=5+1 | 10 | 38 |
6=4+2 | 7.2 | 40.8 |
7=5+2 | 10.8 | 35.5 |
7=4+3 | 8.8 | 47.2 |
8=5+3 | 12.4 | 51.6 |
8=4+4 | 12.8 | 51.2 |
由表可知,逢8特殊。
3.程序源代码:
import java.util.*; public class BuyingBooks { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); double p=0;//购买总价格,初始化为0 int c;//购买总数量 System.out.println("请输入购书数量:"); c=sc.nextInt(); if(c%5==1) { p=c/5*0.75*5*8+8*1; } else if(c%5==2) { p=c/5*0.75*5*8+8*2*0.95; } else if(c%5==3&&c>5) { p=(c/5-1)*0.75*5*8+2*8*4*0.8; } else if(c%5==3&&c<5) { p=c*8*0.9; } else if(c%5==4) { p=c/5*0.75*5*8+8*4*0.8; } else { p=c/5*0.75*5*8; } System.out.println("需要支出的最少金额为:"+p+"元"); } }
4.结果截图:
5.实验总结:
实验看起来复杂,但是只要仔细思考找准题意很好解决。