一、题目:
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。
二、解题思路:
1、当购书本数在0-10之间时,
购书本数 | 购书搭配 | 所需钱数 | 花费最少的搭配组合 |
1 | 1 | 8 | 1 |
2 | 2 | 15.2 | 2 |
3 | 3 | 21.6 | 3 |
4 | 4 | 25.6 | 4 |
5 | 5 | 30 | 5 |
6 | 5+1 4+2 3+3 | 38 40.8 43.2 | 5+1 |
7 | 5+2 4+3 | 45.2 47.2 | 5+2 |
8 | 5+3 4+4 | 51.6 51.2 | 4+4 |
9 | 5+4 | 55.6 | 5+4 |
10 | 5+5 | 60 | 5+5 |
2、当购书本书大于10时,相应的购书策略为:每10本书一组,对书本进行分组,完整的组最低的价格为60元,不完整的组对应1求取最小的花费,最后求和。
三、源代码:
import java.util.Scanner; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class hali { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int a,b; double less; System.out.print("请输入买的本书:"); Scanner sc=new Scanner(System.in); int sum=sc.nextInt(); a=sum/10; b=sum%10; less=0; switch(9-b) { case 0: less+=4.4; case 1: less+=6; case 2: less+=7.2; case 3: less+=8; case 4: less+=4.4; case 5: less+=4; case 6: less+=6.4; case 7: less+=7.2; case 8: less+=8; case 9: less+=60*a; } System.out.print("最低价格:"+less); } }
测试截图:
四、实验总结:
这次对于购买《哈利波特》书籍的问题,首先举出特例,然后从中找到规律。
时间: 2024-12-29 13:31:24