zoukankan      html  css  js  c++  java
  • 算法-书的最低价格

    一、实验题目:

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

    二、设计思想

    首先1-5本,按照如上折扣买最实惠。6-7时,按照5+1、2+5买最实惠,8时按照4+4买最实惠,9-10时5+4、5+5最实惠。依次类推,由题目规律可知10为循环。

    三、实验代码

     1 import java.util.Scanner;
     2 public class BuyBook {
     3     public static void main(String[] args) {
     4         // TODO Auto-generated method stub
     5         Book b = new Book();
     6         b.setBookNumber();
     7         b.getBookWay();
     8     }
     9 
    10 }
    11 class Book
    12 {
    13     int number=-1;
    14     int time1;//循环次数
    15     int time2;
    16     double money;//最实惠所需钱
    17     
    18     void setBookNumber()//输入需要购买书的数量
    19     {
    20         System.out.println("请输入需要购买书的数量");
    21         while(number<0)//输入值不能小于0
    22         {
    23             Scanner l = new Scanner(System.in);
    24             number = l.nextInt();
    25         }
    26         
    27     }
    28     
    29     void getBookWay()//得到最优惠的书的购买方式
    30     {
    31         time1 = number/10;
    32         time2 = number-time1*10;
    33         if(time2 == 0)
    34         {
    35             money = time1*(8*5*0.75*2)+0;
    36         }
    37         else if(time2 == 1)
    38         {
    39             money = time1*(8*5*0.75*2)+1*8*1;
    40         }
    41         else if(time2 == 2)
    42         {
    43             money = time1*(8*5*0.75*2)+2*8*0.95;
    44         }
    45         else if(time2 == 3)
    46         {
    47             money = time1*(8*5*0.75*2)+3*8*0.9;
    48         }
    49         else if(time2 == 4)
    50         {
    51             money = time1*(8*5*0.75*2)+4*8*0.8;
    52         }
    53         else if(time2 == 5)
    54         {
    55             money = time1*(8*5*0.75*2)+5*8*0.75;
    56         }
    57         else if(time2 == 6)
    58         {
    59             money = time1*(8*5*0.75*2)+5*8*0.75+8;
    60         }
    61         else if(time2 == 7)
    62         {
    63             money = time1*(8*5*0.75*2)+5*8*0.75+2*8*0.95;
    64         }
    65         else if(time2 == 8)
    66         {
    67             money = time1*(8*5*0.75*2)+4*8*0.8*2;
    68         }
    69         else if(time2 == 9)
    70         {
    71             money = time1*(8*5*0.75*2)+5*8*0.75+4*8*0.8;
    72         }
    73         System.out.println("最低的价格为:"+money);
    74     }
    75 }

    四、实验截图:

    五、个人总结

    对于这种类型的问题注意规律。

  • 相关阅读:
    Ubuntu “Failed to fetch”错误的解决方法
    #ifndef 与#pragma once
    vs TODO list使用
    window脚本编写bat程序执行
    vtk 的qt插件编译
    git bash 下载加速
    条件欧几里得聚类 pcl::ConditionalEuclideanClustering
    ANY数据类型的使用
    《C#编程风格》还记得多少
    驼峰命名法则
  • 原文地址:https://www.cnblogs.com/hzxsg0919/p/5561843.html
Copyright © 2011-2022 走看看