華為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
英文地址,請注明出處:http://en.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中如何添加天地圖。 我們將通過從天地圖官網自己添加服務鏈接并添加至收藏的方式以及應急的方法來做本次的介紹。天地圖的數據主要包括影像、電子地圖、地形圖等。我…