zoukankan      html  css  js  c++  java
  • 17蓝桥杯竞赛题“购物单”

    小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。
    
    这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。
    小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。
    现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。
    
    取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。
    你的任务是计算出,小明最少需要取多少现金。


    以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。

    **** 180.90 88折
    **** 10.25 65折
    **** 56.14 9折
    **** 104.65 9折
    **** 100.30 88折
    **** 297.15 半价
    **** 26.75 65折
    **** 130.62 半价
    **** 240.28 58折
    **** 270.62 8折
    **** 115.87 88折
    **** 247.34 95折
    **** 73.21 9折
    **** 101.00 半价
    **** 79.54 半价
    **** 278.44 7折
    **** 199.26 半价
    **** 12.97 9折
    **** 166.30 78折
    **** 125.50 58折
    **** 84.98 9折
    **** 113.35 68折
    **** 166.57 半价
    **** 42.56 9折
    **** 81.90 95折
    **** 131.78 8折
    **** 255.89 78折
    **** 109.17 9折
    **** 146.69 68折
    **** 139.33 65折
    **** 141.16 78折
    **** 154.74 8折
    **** 59.42 8折
    **** 85.44 68折
    **** 293.70 88折
    **** 261.79 65折
    **** 11.30 88折
    **** 268.27 58折
    **** 128.29 88折
    **** 251.03 8折
    **** 208.39 75折
    **** 128.88 75折
    **** 62.06 9折
    **** 225.87 75折
    **** 12.89 75折
    **** 34.28 75折
    **** 62.16 58折
    **** 129.12 半价
    **** 218.37 半价
    **** 289.69 8折


    需要说明的是,88折指的是按标价的88%计算,而8折是按80%计算,余者类推。
    特别地,半价是按50%计算。

    请提交小明要从取款机上提取的金额,单位是元。
    答案是一个整数,类似4300的样子,结尾必然是00,不要填写任何多余的内容。

    特别提醒:不许携带计算器入场,也不能打开手机。

    程序如下

    public class Java17_1 {
        public static double CouDis(double dis) {
            if(dis>9)   return dis/100;
            return dis/10;
        }
        
        public static void  main(String[] args) {
            String str = 
                    "****     180.90       88Z" + 
                    "****      10.25       65Z" + 
                    "****      56.14        9Z" + 
                    "****     104.65        9Z" + 
                    "****     100.30       88Z" + 
                    "****     297.15        5Z" + 
                    "****      26.75       65Z" + 
                    "****     130.62        5Z" + 
                    "****     240.28       58Z" + 
                    "****     270.62        8Z" + 
                    "****     115.87       88Z" + 
                    "****     247.34       95Z" + 
                    "****      73.21        9Z" + 
                    "****     101.00        5Z" + 
                    "****      79.54        5Z" + 
                    "****     278.44        7Z" + 
                    "****     199.26        5Z" + 
                    "****      12.97        9Z" + 
                    "****     166.30       78Z" + 
                    "****     125.50       58Z" + 
                    "****      84.98        9Z" + 
                    "****     113.35       68Z" + 
                    "****     166.57        5Z" + 
                    "****      42.56        9Z" + 
                    "****      81.90       95Z" + 
                    "****     131.78        8Z" + 
                    "****     255.89       78Z" + 
                    "****     109.17        9Z" + 
                    "****     146.69       68Z" + 
                    "****     139.33       65Z" + 
                    "****     141.16       78Z" + 
                    "****     154.74        8Z" + 
                    "****      59.42        8Z" + 
                    "****      85.44       68Z" + 
                    "****     293.70       88Z" + 
                    "****     261.79       65Z" + 
                    "****      11.30       88Z" + 
                    "****     268.27       58Z" + 
                    "****     128.29       88Z" + 
                    "****     251.03        8Z" + 
                    "****     208.39       75Z" + 
                    "****     128.88       75Z" + 
                    "****      62.06        9Z" + 
                    "****     225.87       75Z" + 
                    "****      12.89       75Z" + 
                    "****      34.28       75Z" + 
                    "****      62.16       58Z" + 
                    "****     129.12        5Z" + 
                    "****     218.37        5Z" + 
                    "****     289.69        8Z      ";
            int lineNum = 0;    //统计有多少个商品
            
            for(int i = 0; i < str.length(); i++) {
                if(str.charAt(i)=='*')  lineNum++;
            }
            lineNum/=4;
            double prices[] = new double[lineNum];
            double discount[] = new double[lineNum];
            
            String newStrP=new String();
            String newStrD=new String();
            
            
            
            
            int prn=0;
            int din=0;
            
            for(int i = 0; i < str.length(); i++) {
                if((str.charAt(i) >= '0' && str.charAt(i) <= '9') || str.charAt(i)=='.') {
                    if (str.charAt(i+1)=='Z' || str.charAt(i+2)=='Z') {
                        if (!newStrP.equals("")) {
                            //System.out.println(Double.valueOf(newStrP));
                            prices[prn] = Double.valueOf(newStrP);
                            prn++;
                        }
                        
                        newStrP=new String();
                        
                        continue;
                    }
                    newStrP+=str.charAt(i);
                }
            }
            
            for(int i = 0; i < str.length(); i++) {
                if((str.charAt(i) >= '0' && str.charAt(i) <= '9')) {
                    if (!(str.charAt(i+1)=='Z' || str.charAt(i+2)=='Z')) {
                        if (!newStrD.equals("")) {
                            //System.out.println(Double.valueOf(newStrP));
                            discount[din] = Double.valueOf(newStrD);
                            din++;
                        }
                        
                        newStrD=new String();
                        
                        continue;
                    }
                    newStrD+=str.charAt(i);
                }
            }
            
            prn = 0;
            din = 0;
            
            
            
    //      
    //      for(double e:prices) {
    //          System.out.println(e);
    //      }
    //      for(double e:discount) {
    //          System.out.println(e);
    //      }
    //      
    //      
            for(;prn<prices.length;prn++) {
                prices[prn] *=CouDis(discount[prn]);
            }
            
            double result=0;
            for(double e:prices) {
                result+=e;
            }
            
            System.out.print(result);
            
            
            
        }
    }
  • 相关阅读:
    oc调用rest api
    EF Attach时已存在的处理方式
    设置XtraForm标题居中
    读取DBF文件数据
    GP 环境参数名称列表
    MapWinGIS.ocx 注册
    ArcEngine :The XY domain on the spatial reference is not set or invalid错误
    批量修改sql server 2008的架构
    net不安装Oracle11g客户端直接使用ODAC
    Ninject使用介绍
  • 原文地址:https://www.cnblogs.com/jzl123/p/8438768.html
Copyright © 2011-2022 走看看