购买一批书的最低价格

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

                                 本数                     折扣

                                   2                        5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。

发现归律如下:

1.当购书本数在0-10之间时,对应的购书策略如上表所示;

2.当购书本书大于10时,相应的购书策略为:每10本书一组,对书本进行分组,完整的组最低的价格为60元,不完整的组对应1求取最小的花费,最后求和。

package shopp;

import java.util.*;

public class main { public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        int N=0;
        int n=0;
        int m=0;
        Scanner S=new Scanner(System.in);
        System.out.print("请输入你要购买的书的本数:");
        N=S.nextInt();
        if(N%5==3)
        {
            n=N/5;
            m=N%5;
            if(n==0)
            {
                System.out.println("读者购买一批书的最低价格为:"+(3*8*0.9));
            }
            else
            {
                System.out.println("读者购买一批书的最低价格为:"+((n-1)*5*8*0.75+2*4*8*0.8));
            }
        }
        else
        {
            n=N/5;
            m=N%5;
            switch(m)
            {
               case 0:System.out.println("读者购买一批书的最低价格为:"+(n*5*8*0.75));break;
               case 1:System.out.println("读者购买一批书的最低价格为:"+(n*5*8*0.75+8));break;
               case 2:System.out.println("读者购买一批书的最低价格为:"+(n*5*8*0.75+m*8*0.95));break;
               case 4:System.out.println("读者购买一批书的最低价格为:"+(n*5*8*0.75+m*8*0.9));break;
               case 5:System.out.println("读者购买一批书的最低价格为:"+(n*5*8*0.75+m*8*0.75));break;
            }
        }
    }
}

查看运行结果:

当为10本书时

result 20.00

当为8本书时

result 12.80

 
 
 
 
 
原文地址:https://www.cnblogs.com/LJT666/p/4520513.html