华为OD机考-网上商城优惠活动-模拟(JAVA 2025B卷)

在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;public class Test3 {static int mjq;static int dzq;static int wmkq;static class Group {int price;// 打折后价格int num;// 优惠券使用熟练}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();mjq = Integer.parseInt(input.split(" ")[0]);// 满减券数量 100减10 200减20// 300减30dzq = Integer.parseInt(input.split(" ")[1]); // 打折券数量 92折 向下取整wmkq = Integer.parseInt(input.split(" ")[2]); // 无门槛券 减5元 价格>=0int nums = Integer.parseInt(scanner.nextLine());for (int i = 0; i < nums; i++) {int price = Integer.parseInt(scanner.nextLine());Group g = getMinPrice(price);System.out.println(g.price + " " + g.num);}}public static Group getMinPrice(int price) {String ways[] = {"MD”, “MY", "DM", "DY", "YM", "YD"};Group group = new Group();group.price = price;group.num = dzq + mjq + wmkq;for (String way : ways) {Group g = count(way, price);if (g.price < group.price) {group.price = g.price;group.num = g.num;} else if (g.price == group.price) {if (g.num < group.num) {group.num = g.num;}}}return group;}public static Group count(String way, int price) {
// Map<Integer, Integer> map = new HashMap<Integer, Integer>(); // 价格和数量Group group = new Group();int mjCount = 0;// 满减券使用数量int wmqCount = 0;// 优惠券使用数量switch (way) {case "MD":// 先满减 再打折while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;// System.out.println(price+“_”+num);price -= num;mjCount++;}// System.out.println(“满减后的价格” + price);price = (int) (price * 0.92);// System.out.println(“打折后的价格” + price);group.price = price;group.num = mjCount + 1;break;case "MY":// 先满减 无门槛券while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;// System.out.println(price+“_”+num);price -= num;mjCount++;}// System.out.println(“满减后的价格” + price);while (price > 0 && wmqCount < wmkq) {price -= 5;price = price < 0 ? 0 : price;wmqCount++;}group.price = price;group.num = mjCount + wmqCount;// System.out.println(“无门槛后的价格” + price);break;case "DM":// 先打折再满减price = (int) (price * 0.92);// 先满减 再打折// System.out.println(“打折后的价格” + price);while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;// System.out.println(price+“_”+num);price -= num;mjCount++;}// System.out.println(“满减后的价格” + price);group.price = price;group.num = mjCount + 1;break;case "DY":// 先打折 再使用无门槛券price = (int) (price * 0.92);// System.out.println(“打折后的价格” + price);while (price > 0 && wmqCount < wmkq) {price -= 5;price = price < 0 ? 0 : price;wmqCount++;}// System.out.println(“无门槛券后的价格” + price);group.price = price;group.num = wmqCount + 1;break;case "YM":// 先使用无门槛券 再满减while (price > 0 && wmqCount < wmkq) {price -= 5;wmqCount++;price = price < 0 ? 0 : price;}// System.out.println(“无门槛券后的价格” + price);while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;price -= num;mjCount++;}// System.out.println(“满减后的价格” + price);group.price = price;group.num = mjCount + wmqCount;break;case "YD":// 先使用 无门槛券 再使用打折while (price > 0 && wmqCount < wmkq) {price -= 5;wmqCount++;price = price < 0 ? 0 : price;}// System.out.println(“无门槛券后的价格” + price);price = (int) (price * 0.92);// System.out.println(“打折后的价格” + price);group.price = price;}return group;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910459.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 数据处理 - 将字符串按指定位数截断并放入数组(基础实现、使用正则表达式实现、使用正则表达式简化实现)

将字符串按指定位数截断并放入数组 1、基础实现 /*** 将字符串按指定位数截断并放入数组* param {string} str - 要处理的字符串* param {number} n - 每段截断的位数* returns {Array} 截断后的字符串数组*/ function splitStringByLength(str, n) {const result [];for (l…

python学智能算法(十四)|机器学习朴素贝叶斯方法进阶-CountVectorizer文本处理简单测试

【1】引用 前序学习文章中&#xff0c;已经对拉普拉斯平滑和简单二元分类进行了初步探索&#xff0c;相关文章链接为&#xff1a; python学智能算法&#xff08;十二&#xff09;|机器学习朴素贝叶斯方法初步-拉普拉斯平滑计算条件概率-CSDN博客 python学智能算法&#xff0…

Java枚举类的规范设计与常见错误规避

前言 在Java开发中&#xff0c;枚举&#xff08;enum&#xff09;是一种强大的工具&#xff0c;用于定义一组固定常量集合。然而&#xff0c;许多开发者在使用枚举时容易陷入设计误区&#xff0c;导致代码可维护性差、运行时错误频发&#xff0c;甚至引发生产事故。 一、枚举…

Vue指令v-if

目录 一、Vue中的v-if指令是什么&#xff1f;二、v-if指令的使用 一、Vue中的v-if指令是什么&#xff1f; v-if指令是根据表达值的真假&#xff0c;切换元素的显示和隐藏&#xff0c; 本质是通过操纵dom元素来切换显示状态。 注意&#xff1a; 表达式的值为true&#xff0c;元…

探秘阿里云云数据库Tair:性能、特性与应用全景解析

引言 在数字化浪潮席卷全球的当下&#xff0c;数据已然成为企业最为关键的资产之一&#xff0c;如何高效管理和运用这些数据&#xff0c;成为了企业在激烈竞争中脱颖而出的关键。云数据库作为现代数据管理的核心工具&#xff0c;凭借其卓越的可扩展性、灵活性以及高效的数据处…

百度大模型免费上线,学AI大模型就选近屿智能

3月16日&#xff0c;文心大模型4.5和文心大模型X1正式发布&#xff01;目前两款模型已免费对用户开放。 文心大模型4.5是百度自主研发的新一代原生多模态基础大模型&#xff0c;通过多个模态联合建模实现协同优化&#xff0c;提高多模态理解能力&#xff0c;精进语言能力&#…

PostgreSQL 中实现跨库连接主要有两种解决方案

方法一&#xff1a;使用 dblink 扩展 dblink 是 PostgreSQL 的内置扩展&#xff0c;允许在一个数据库会话中执行远程 SQL 查询。 步骤 1&#xff1a;在源数据库中启用 dblink 扩展 CREATE EXTENSION IF NOT EXISTS dblink;步骤 2&#xff1a;执行跨库查询 -- 简单查询示例&…

Qt中的布局

Qt6.8的布局管理系统&#xff0c;用于自动排列部件&#xff1a;水平布局QHBoxLayout、垂直布局QVBoxLayout、网格布局QGridLayout、表单布局QFormLayout 布局(layout)是一种优雅而灵活的方式&#xff0c;可以在其容器内自动排列子部件(child widgets)。每个部件通过sizeHint和s…

Agent成本降低46%:缓存规划器的思路模板

论文标题 Cost-Efficient Serving of LLM Agents via Test-Time Plan Caching 论文地址 https://arxiv.org/pdf/2506.14852 作者背景 斯坦福大学 动机 大模型能力的飞速进步催收了大量 AI 智能体应用&#xff0c;它们协调多种模型、工具、工作流来解决实际复杂任务。然而…

Vue 3 + Axios 完整入门实战指南

从入门到深入&#xff0c;手把手教你在 Vue 3 中正确使用 Axios&#xff0c;支持全局挂载、局部分离、使用 proxy 连接场景&#xff0c;适合所有前端小白和实战设计。 大家好&#xff0c;我是石小石&#xff01;一个热爱技术分享的开源社区贡献者&#xff0c;小册《油猴脚本实战…

CppCon 2017 学习:Effective Qt: 2017 Edition

这段内容讲的是 Qt 容器&#xff08;Qt Containers&#xff09;和标准库容器&#xff08;STL Containers&#xff09;之间的选择和背景&#xff1a; 主要观点&#xff1a; Qt 容器的历史背景 Qt 自身带有一套容器类&#xff08;如 QList, QVector, QMap 等&#xff09;&#…

Pandas 核心数据结构详解:Series 和 DataFrame 完全指南

1. 前言&#xff1a;为什么需要 Pandas 数据结构&#xff1f; 在数据处理和分析中&#xff0c;我们需要高效的方式来存储和操作结构化数据。Python 原生的列表&#xff08;List&#xff09;和字典&#xff08;Dict&#xff09;虽然灵活&#xff0c;但缺乏针对数据分析的优化。…

使用 Solscan API 的开发指南:快速获取 Solana 链上数据

Solana 生态中有多个区块浏览器&#xff0c;其中 Solscan 提供了功能全面的 API&#xff0c;适用于查询地址资产、Solana 生态中有多个区块浏览器&#xff0c;其中 Solscan 提供了功能全面的 API&#xff0c;适用于查询地址资产、交易详情、合约交互等多种开发场景。相比直接使…

高效工具-libretv

什么是libretv? LibreTV 是一个轻量级、免费的在线视频搜索与观看平台&#xff0c;提供来自多个视频源的内容搜索与播放服务。无需注册&#xff0c;即开即用&#xff0c;支持多种设备访问。项目结合了前端技术和后端代理功能&#xff0c;可部署在支持服务端功能的各类网站托管…

回溯----5.括号生成

题目链接 /** 合法括号生成规则: 第一个括号必须是左括号(第一个为右必定无法闭合) 选择过程中左括号数量必须小于n才可选择左括号(大于n则一定有括号无法闭合) 左括号数量必须大于右括号数量才可选择右括号(相等代表所有前驱括号都已闭合) 所需参数: left 记录已选择左括号数…

【weaviate】分布式数据写入之LSM树深度解析:读写放大的权衡

文章目录 一、LSM树的设计哲学&#xff1a;写优化的根本动机1、 传统B树存储的性能瓶颈2、 LSM树的根本性创新 二、写入路径的深度技术分析1、 WAL机制的精密设计2、 MemTable的数据结构3、 刷盘&#xff08;Flush&#xff09;过程的技术细节 三、Compaction策略&#xff1a;LS…

Pygame 大鱼吃小鱼

【Pygame 大鱼吃小鱼】是一款基于Python编程语言和Pygame库开发的趣味游戏。Pygame是Python中一个广泛用于开发2D游戏的开源模块集合&#xff0c;它提供了丰富的功能&#xff0c;如窗口管理器、事件处理、图形绘制等&#xff0c;使得初学者也能快速上手创建游戏。 这段 Python …

【为什么在触发的事件中修改控件属性需要使用`Invoke`】

在C#中&#xff0c;特别是在使用Windows Forms或WPF等GUI框架时&#xff0c;控件的属性和状态通常只能在创建它们的线程&#xff08;即UI线程&#xff0c;即主线程或用户界面线程&#xff09;中直接修改。这是由于这些框架的设计基于单线程模型&#xff0c;其中所有与用户界面&…

Android 当apk是系统应用时,无法使用webView的解决方案

最近在做项目时&#xff0c;遇到了一个无法使用webView的问题&#xff0c;apk是系统应用&#xff0c;点击加载webView时应用就是崩溃&#xff0c;原因是系统应用时&#xff0c;Android会觉得webView不安全&#xff0c;不避让加载。 解决的思路就是使用映射&#xff0c;把原生的…

ArcGIS Pro无插件加载(无偏移)天地图!一次添加长久使用

以前我们介绍过&#xff1a;ArcGIS无插件加载&#xff08;无偏移&#xff09;天地图。这次我们来介绍ArcGIS Pro中如何添加天地图。 我们将通过从天地图官网自己添加服务链接并添加至收藏的方式以及应急的方法来做本次的介绍。天地图的数据主要包括影像、电子地图、地形图等。我…