当前位置: 首页 > news >正文

蓝桥与力扣刷题(蓝桥 购物单)

题目:小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。

这不,大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。

小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。

现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

取款机只能提供 100元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。

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

需要说明的是,8888 折指的是按标价的 8888 计算,而 88 折是按 8080 计算,余者类推。 特别地,半价是按 5050 计算。

请输出小明要从取款机上提取的金额,单位是元。

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

解题思路+代码:(引用题解区 作者:张三xy)

 

代码:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class 购物单{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=50;
        double sum=0;
        while (n>0){
            String d=sc.next();
            double p=sc.nextDouble();
            String zk=sc.next();
            sum +=spend(p,zk);
            n--;
        }
        System.out.println((int)Math.ceil(sum/100)*100);
    }

    static double spend(double p,String zk){
        return p*zheKo(zk);
    }

    //计算折扣
    static double zheKo(String zk){
        int t=100;
        double z=0;
        if (zk.length()==2)t=10;
        if (zk.equals("半价"))z=0.5;
        else {
            String s=zk.substring(0,zk.length()-1);
            z=Integer.parseInt(s)*1.0/t;
        }
        return z;
    }


}

解题思路:(Excel表)将题目中的数据复制粘贴在Excel表中,折扣中“折”替换成“ ”,“半价”替换成50,像9,8,7,6,5折的手动加0,再对折扣一列的单元格使用=J1/100(折扣的结果存放在K列),算出折扣后进一步乘以原价(=I1*K1)等于折扣价(折扣价存放在L列)。最后利用求和函数=SUM(L1:L50)算出购物的价格。

总结: 这道题的难度属于很难的了,第一个难点就是数据非常地冗长,检测时间也需要花费很久,根据上面的图也能看出逻辑正确的代码在提交时也会超时;第二个难点就是计算,在题解区看到很多人使用暴力计算,想要算出商品的价格(在考试当中也是没办法的办法了),但是这样输入一个错误的商品价格就会导致结果错误。另一个方法就是使用Excel表将题目中的数据导入进去计算,详细步骤已经在上面有相应的解释。(附:如果有更好的思路可以分享在评论区,谢谢~)

相关文章:

  • 【Prometheus】prometheus标签替换label_replace,动态修改生成标签,增强查询的灵活性和表达能力
  • 【Linux进程七】程序地址空间
  • UDP协议原理
  • CatchCat
  • 【电路笔记】-D型触发器
  • mapper.xml中 “http://mybatis.org/dtd/mybatis-3-mapper.dtd“> 报错的解决方法
  • 指令系统3(算数运算指令)
  • 算法题(102):八皇后
  • 剑指 Offer II 113. 课程顺序
  • 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring MVC 的核心组件:DispatcherServlet 的工作原理
  • 投资日记_道氏理论技术分析
  • 互联网it常用抓包工具说明
  • 洛谷 P10108 [GESP202312 六级] 闯关游戏 题解
  • 【Linux】——环境变量与进程地址空间
  • ocp考试有判断题吗?多少分及格?
  • 【C++】理解 C++ 中的完美转发(Perfect Forwarding)
  • 人工智能开发中的常见问题与避坑指南
  • 列举常见算法的时间复杂度与空间复杂度
  • 【Java/数据结构】队列(Quque)
  • 【DeepSeek学C++】 effective modern C++第33条款
  • 兖州中材建设有限公司网站/营销型网站建设解决方案
  • 动态网站建设答案/企业seo自助建站系统
  • 建站魔方极速网站建设/谷歌seo培训
  • 佛山专业网站建设团队/宁德市蕉城区
  • 男女一夜做受视频最新网站/seo怎么优化关键词排名培训
  • 做网站行情/搜索引擎排名原理