最优价格买书

1. 题目:

书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:

本数 折扣 2    5%

             3    10%

             4    20%

             5    25%

      根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

      设计算法能够计算出读者购买一批书的最低价格。

      要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。

设计思想:

      最优惠的价格购买书籍,便是折扣越大越好,不满五本的时候当然是一次买的越多越好,而大于五本的时候,有规律可循.

     所以我们就考虑6,7,8,9本的情况,经过计算,6本时购5+1本最优,7本时购5+2本最优,8本时购4+4本最优,9本时5+4本最优,所以只要在编程时,特地注意8,13,18(即除5余数为3的情况,排除3)的情况,就可.

设计代码:

package books;

import java.util.Scanner;

public class minprice {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		
		System.out.print("请输入需要购买的数量");
		Scanner sr=new Scanner(System.in);
		int num=sr.nextInt();
		int a,b;
		a=num%5;
		b=num/5;
		double s=0;
		switch(a)
		{
		case 0:s=30*b;break;
		case 1:s=30*b+8;break;
		case 2:s=30*b+15.2;break;
		case 3:if(b==0)
		{
			s=21.6;
		}
		else
		{

            s=(a-1)*30+51.2;

        }
		break;
		case 4:s=30*a+25.6;break;

		}
		System.out.print("最低的花费为"+s+"元");

	}

}

实验截图:

实验反思:

拿到一个设计题目,要考虑是否有规律,如果能发现其中的规律,会使编程变得非常之简单.

原文地址:https://www.cnblogs.com/twentytwo/p/4533891.html