书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
[设计思想]:
先根据打折方式递归查找书价规律,得出在购入8本书时,以分别购入四本的方法最为合算。因此可以对购书数进行对10的取余,余数使用switch语句进行分类计算,除数乘上以分别购入两个五本的方式的最低价格,最后加起来得出最低价格。
[代码实现]:
import java.util.Scanner;
public class HarryPotter {
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入要购入书的数量:");
int number = sc.nextInt();
float Money=0.0f;
int a=0,b=0;
switch(number%10)
{case 0:
break;
case 1:
Money+=8;
break;
case 2:
Money+=15.2;
break;
case 3:
Money+=21.6;
break;
case 4:
Money+=25.6;
break;
case 5:
Money+=30;
break;
case 6:
Money+=38;
break;
case 7:
Money+=45.2;
break;
case 8:
Money+=51.2;
break;
case 9:
Money+=55.6;
break;
}
Money+=60*(number/10);
System.out.println("购买"+number+"本书最低价格为:"+Money);
}
}
[实现截图]: