• 买书(5.30)


    设计思路:

    不论买多少本,都是除十,因为在余数之外肯定都是五本五本买最划算。(为什么不除5,因为假如是18本,除五得三余三但是买八本四本四本买比五本和三本买更便宜)余数按照没种情况列举出来,分别计算,最便宜的方法是一定的。最后根据以上方案输出买的方式还有总钱数。

    源代码:

     1 package test;
     2 
     3 import java.util.Scanner;
     4 
     5 public class B 
     6 {
     7       static void qianshu(int x,int y)//计算钱数还有方案的函数
     8       {
     9           float number_zqs = 0,number_yzq = 0;//总钱数还有余出来的书的总钱数
    10           switch(y)
    11           {
    12               case 0:number_yzq=0;break;
    13               case 1:number_yzq=8;break;
    14               case 2:number_yzq=(float) (16*0.95);break;
    15               case 3:number_yzq=(float) (24*0.90);break;
    16               case 4:number_yzq=(float) (32*0.80);break;
    17               case 5:number_yzq=(float) (40*0.75);break;
    18               case 6:number_yzq=38;break;
    19               case 7:number_yzq=(float) 44.4;break;
    20               case 8:number_yzq=(float) 51.2;break;
    21               case 9:number_yzq=(float) 55.6;break;
    22           }
    23           number_zqs=(float) (x*60 + number_yzq);
    24           System.out.println("一共要花"+number_zqs+"元!");
    25           if(y!=8)//只有8本的情况比较特殊,所以输出语句不同
    26           {
    27               System.out.println("一共要买" + (2*x+1) + "套! 以及" + y%5 + "本不同的");
    28           }
    29           else
    30           {
    31               System.out.println("一共要买" + (2*x+1) + "套! 以及两套中本不同的两个4本");
    32           }
    33       }
    34     
    35       public static void main(String arg[])
    36       {
    37           int number_zongshu=0,number_yushu=0,number_taoshu;//图书总数,除十的余数,还有一共有多少套
    38           System.out.println("请输入要购买的书数量:");
    39           
    40           Scanner in=new Scanner(System.in);
    41           number_zongshu=in.nextInt();
    42           in.close();
    43           
    44           number_yushu=number_zongshu%10;
    45           
    46           number_taoshu=number_zongshu/10;
    47           
    48           qianshu(number_taoshu,number_yushu);
    49       }
    50 
    51 }

    结果截图:

    18本那么就是两个五本再加两个四本30+30+32*0.8*2=111.2

    23本就是四个五本一个三本,30*4+24*0.9=141.6

    总结:

    关键思想就是数量多了大头肯定是按照5本5本的买,关键是余数的处理。

  • 相关阅读:
    最常用的排序——快速排序
    堆排序 Heap Sort
    经典排序算法
    Android studio界面相关设置
    对了解矩阵、线性变换的本质有太大帮助
    [转]grep 在文本中查找内容
    [转] PHP在不同页面之间传值的三种常见方式
    快速幂取余 [转]
    Avril Lavigne : Everybody Hurts (Ver3)
    MySQL 初始化root 密码
  • 原文地址:https://www.cnblogs.com/sisi-job/p/5542561.html
Copyright © 2020-2023  润新知