一,问题描述
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。设计算法能够计算出读者购买一批书的最低价格。
二、设计思想
可以列举出买一本到十本各个最优化的方案,得知在购买8本书时有差异,所以把他们一个个列进一个数组里,在以此类推即可。
三、代码实现、
import java.util.Scanner; //20142984chengchongjing //买书问题 public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 double a[]=new double [11]; a[0]=0; a[1]=8; a[2]=15.2; a[3]=21.6; a[4]=25.6; a[5]=30; a[6]=38; a[7]=45.2; a[8]=51.2; a[9]=55.6; a[10]=60; int zushu=0,yvshu=0,benshu=0; double zongjia; Scanner in=new Scanner(System.in) ; System.out.println("请输入要购买的书籍的本数"); benshu=in.nextInt(); zushu=benshu/10; yvshu=benshu%10; zongjia=zushu*a[10]+a[yvshu]; System.out.println("最便宜的购书钱数为"+zongjia); } }
四、实现截图
五、个人总结
这样列举的方法可以帮我们简单粗暴地解决一些问题,可以通过列举来找到一般的规律,从而得到最有结果