最优价格买书
1. 题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣 2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。
设计思想:
最优惠的价格购买书籍,便是折扣越大越好,不满五本的时候当然是一次买的越多越好,而大于五本的时候,有规律可循.
所以我们就考虑6,7,8,9本的情况,经过计算,6本时购5+1本最优,7本时购5+2本最优,8本时购4+4本最优,9本时5+4本最优,所以只要在编程时,特地注意8,13,18(即除5余数为3的情况,排除3)的情况,就可.
设计代码:
package books; import java.util.Scanner; public class minprice { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.print("请输入需要购买的数量"); Scanner sr=new Scanner(System.in); int num=sr.nextInt(); int a,b; a=num%5; b=num/5; double s=0; switch(a) { case 0:s=30*b;break; case 1:s=30*b+8;break; case 2:s=30*b+15.2;break; case 3:if(b==0) { s=21.6; } else { s=(a-1)*30+51.2; } break; case 4:s=30*a+25.6;break; } System.out.print("最低的花费为"+s+"元"); } }
实验截图:
实验反思:
拿到一个设计题目,要考虑是否有规律,如果能发现其中的规律,会使编程变得非常之简单.