标签:
一、实验题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
二、设计思想
首先1-5本,按照如上折扣买最实惠。6-7时,按照5+1、2+5买最实惠,8时按照4+4买最实惠,9-10时5+4、5+5最实惠。依次类推,由题目规律可知10为循环。
三、实验代码
1 import java.util.Scanner; 2 public class BuyBook { 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 Book b = new Book(); 6 b.setBookNumber(); 7 b.getBookWay(); 8 } 9 10 } 11 class Book 12 { 13 int number=-1; 14 int time1;//循环次数 15 int time2; 16 double money;//最实惠所需钱 17 18 void setBookNumber()//输入需要购买书的数量 19 { 20 System.out.println("请输入需要购买书的数量"); 21 while(number<0)//输入值不能小于0 22 { 23 Scanner l = new Scanner(System.in); 24 number = l.nextInt(); 25 } 26 27 } 28 29 void getBookWay()//得到最优惠的书的购买方式 30 { 31 time1 = number/10; 32 time2 = number-time1*10; 33 if(time2 == 0) 34 { 35 money = time1*(8*5*0.75*2)+0; 36 } 37 else if(time2 == 1) 38 { 39 money = time1*(8*5*0.75*2)+1*8*1; 40 } 41 else if(time2 == 2) 42 { 43 money = time1*(8*5*0.75*2)+2*8*0.95; 44 } 45 else if(time2 == 3) 46 { 47 money = time1*(8*5*0.75*2)+3*8*0.9; 48 } 49 else if(time2 == 4) 50 { 51 money = time1*(8*5*0.75*2)+4*8*0.8; 52 } 53 else if(time2 == 5) 54 { 55 money = time1*(8*5*0.75*2)+5*8*0.75; 56 } 57 else if(time2 == 6) 58 { 59 money = time1*(8*5*0.75*2)+5*8*0.75+8; 60 } 61 else if(time2 == 7) 62 { 63 money = time1*(8*5*0.75*2)+5*8*0.75+2*8*0.95; 64 } 65 else if(time2 == 8) 66 { 67 money = time1*(8*5*0.75*2)+4*8*0.8*2; 68 } 69 else if(time2 == 9) 70 { 71 money = time1*(8*5*0.75*2)+5*8*0.75+4*8*0.8; 72 } 73 System.out.println("最低的价格为:"+money); 74 } 75 }
四、实验截图:
五、个人总结
对于这种类型的问题注意规律。
标签:
原文地址:http://www.cnblogs.com/hzxsg0919/p/5561843.html