课后作业(最低价格买书)
题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
(1)设计思路:
经过计算得出下列数目的最优方案:
购买本数 购买方案
6 5+1
7 5+2
8 4+4
9 5+4
10 5+5
11 5+5+1
12 5+5+2
从中易得规律当购买数目为x本时最低价格为: minmoney=(number-reminder)/10*60+该余数对应的价格
package maishu; import java.util.Scanner; public class Maishu { public static void main(String[] args) { Scanner num=new Scanner(System.in); System.out.println("请输入要购买的的本数:"); int number=num.nextInt(); double minmoney=0; int reminder=0; reminder=number%10; switch(reminder) { case 0: minmoney=(number-reminder)/10*60+0; break; case 1: minmoney=(number-reminder)/10*60+8; break; case 2: minmoney=(number-reminder)/10*60+15.2; break; case 3: minmoney=(number-reminder)/10*60+21.6; case 4: minmoney=(number-reminder)/10*60+25.6; break; case 5: minmoney=(number-reminder)/10*60+30; break; case 6: minmoney=(number-reminder)/10*60+38; break; case 7: minmoney=(number-reminder)/10*60+45.2; break; case 8: minmoney=(number-reminder)/10*60+51.2; break; case 9: minmoney=(number-reminder)/10*60+55.6; break; } System.out.println("最低价格为:"+minmoney+"元。"); } }
个人总结:
注意细心观察,总结规律,想好后再动手,不要理所当然。