zoukankan      html  css  js  c++  java
  • 设计算法能够计算出读者购买一批书的最低价格

    一、题目:
          n书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示 本数 2,折扣5%;本数 3,折扣10%;本数4 ,折扣20%;本数5,折扣25%;根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

    二、解题思路:

    通过对6本书、7本书、8本书、9本书的分析得到当本数为6、7、9时,最便宜的组合为5+1,5+2,5+4,当本数为8时,最便宜的组合为4+4,因此当本数为13,23,33等时都要分出一个8来才会最便宜,因此首先分为两种情况:本数除以五是余数为3和本数除以五是余数为3以外的数。余数为三时,判断本数除以5的整数商及(本数/5),如果为0,则本数乘以0.9,如果不为0,则商减一,余数加5计算;余数为其他,按商是几,余数是几计算。

    三、源代码:

    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;
                }
            }
        }
    }

    四、程序运行截图:

    五、个人总结

        这次实验总体感觉较好,没有出现太多的问题,主要是在使用switch语句时,忘记了加break。

  • 相关阅读:
    XML语法
    C/C++对MySQL操作
    HDU 3966 Aragorn's Story
    SPOJ 375 Query on a tree
    SPOJ 913 Query on a tree II
    SPOJ 6779 Can you answer these queries VII
    URAL 1471 Tree
    SPOJ 2798 Query on a tree again!
    POJ 3237 Tree
    SPOJ 4487 Can you answer these queries VI
  • 原文地址:https://www.cnblogs.com/fengyutongxing/p/4495457.html
Copyright © 2011-2022 走看看