《哈利波特》最低折扣

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

                               本数                  折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

·根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
·设计算法能够计算出读者购买一批书的最低价格。
设计思想:
 首先前5本书的折扣肯定是全部买折扣最低。然后从第6本到第9本时。
  第六本:5加1
  第七本:5加2
  第八本:4加4
  第九本:5加4
 所以只需要将所需要买的书除以5之后,然后将余数加上5和这几个相比较,最特殊的自然是8本的时候,然后在计算。
代码实现:
 
复制代码
import java.util.Scanner;

public class BuyBook {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要购买书本的数量:");
        int booknumber = sc.nextInt();
        int num=booknumber%5;//除5求余数
        double price=0;
        switch(num)
        {
        case 0://买的数量刚好为5的倍数
            price=booknumber*8*0.75;
            break;
        case 1://买的数量除5余1
            price=(booknumber-1)*8*0.75+8;
            break;
        case 2://买的数量除5余2
            price=(booknumber-2)*8*0.75+2*8*0.95;
        case 3://买的数量除5余3
            if(booknumber==3)
            {
                price=3*8*0.9;
            }
            else
            {
                price=(booknumber-8)*8*0.75+2*4*8*0.8;
            }
            break;
        case 4://买的数量除5余4
            price=(booknumber-4)*8*0.75+4*8*0.8;
            break;
        }
        System.out.println("购书的最低价格为"+price);
    }
}
复制代码
实现截图:
     
 
个人总结:
  这次作业主要是找到其中的规律,然后就方便解决了。
原文地址:https://www.cnblogs.com/maplely/p/5557459.html