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

具体折扣如下所示:

本数 折扣

 2    5%

 3    10%

 4    20%

 5    25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,

一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。

一、设计思路

列举出买十本的所有情况:

1.一本的时候不打折扣,价钱为 8

2.两本的时候买两本价最低,价钱为 15.2

3.三本的时候买三本价最低,价钱为 21.6

4.四本的时候买四本价最低,价钱为 25.6

5.五本的时候买五本价最低,价钱为 30

6.六本的时候分一本和五本价最低,价钱为 38

7.七本的时候分两本和五本价最低,价钱为 45.2

8.八本的时候分四本和四本价最低,价钱为 51.2

9.九本的时候分四本和五本价最低,价钱为 55.6

10.十本的时候分五本和五本价最低,价钱为 60

按照上面的情况,十本书一个循环,按此类推,算出最低价钱

二、程序源代码

 

package test;
import java.util.*;
public class Book{
    public static void main(String args[])
    {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入要买的书本数量:");
        int n=in.nextInt();
        
        int y = n % 10;
        int z = n/10 - y/10;
         
        double m1 = z * 60;
        double m2 = 0;
        if(y==1)
        {
            m2 = 8;
        }
        else if(y==2)
        {
            m2 = 15.2;
        }
        else if(y==3)
        {
            m2 = 21.6;
        }
        else if(y==4)
        {
            m2 = 25.6;
        }
        else if(y==5)
        {
            m2 = 30;
        }
        else if(y==6)
        {
            m2 = 38;
        }
        else if(y==7)
        {
            m2 = 45.2;
        }
        else if(y==8)
        {
            m2 = 51.2;
        }
        else if(y==9)
        {
            m2 = 55.6;
        }
        double money = m1+m2;
        System.out.println("购买"+n+"本书的最低价格为:"+money);
    }
}

 

 

 

三、结果截图