華為OD機試真題——出租車計費/靠譜的車 (2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳實現

在這里插入圖片描述

2025 A卷 100分 題型

本專欄內全部題目均提供Java、python、JavaScript、C、C++、GO六種語言的最佳實現方式;
并且每種語言均涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、3個測試用例以及綜合分析;
本文收錄于專欄:《2025華為OD真題目錄+全流程解析+備考攻略+經驗分享》

華為OD機試真題《出租車計費/靠譜的車 》:


文章快捷目錄

題目描述及說明

Java

python

JavaScript

C++

C

GO


題目名稱:出租車計費/靠譜的車


知識點:進制轉換(9進制映射)、字符串處理
時間限制:1秒
空間限制:256MB
語言限制:不限


題目描述

程序員小明打了一輛出租車去上班。出于職業敏感,他注意到這輛出租車的計費表有點問題,總是偏大。出租車司機解釋說他不喜歡數字 4,所以改裝了計費表,任何數字位置遇到數字4就直接跳過,其余功能正常。例如:

  1. 23再多一塊錢就變為25(跳過24);
  2. 39再多一塊錢變為50(跳過40-49);
  3. 399再多一塊錢變為500(跳過400-499)。
    小明需要根據計費表的表面讀數 N,返回實際產生的費用。
輸入描述

一行數字 N,表示里程表的讀數(1 ≤ N ≤ 888,888,888)。

輸出描述

一個數字,表示實際費用。

示例
  • 輸入:5 → 輸出:4(跳過4)
  • 輸入:17 → 輸出:15(跳過4、14)
  • 輸入:100 → 輸出:81(跳過4、14、24、…、94)

Java

問題分析

題目要求根據改裝后的出租車計費表讀數 N,計算出實際費用。計費表跳過了所有包含數字 4 的數值,例如 4、14、24、40-49 等。我們需要將 N 轉換為實際費用,即排除所有含 4 的數值后的順序位置。


解題思路

  1. 進制轉換思想:將計費表讀數 N 視為一個“偽九進制”數。每個數字位的有效范圍是 0-8,其中原數字若大于 4 則需要減 1(因為跳過了數字 4)。
  2. 逐位處理:遍歷 N 的每一位數字,按規則調整后,將整個數視為九進制轉換為十進制,得到實際費用。

代碼實現

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String n = scanner.nextLine().trim(); // 讀取輸入并去除首尾空格long result = 0; // 存儲實際費用的結果// 遍歷輸入字符串的每一位字符for (int i = 0; i < n.length(); i++) {char c = n.charAt(i); // 當前位的字符int digit = c - '0'; // 轉換為數字// 如果當前位數字大于4,則減1(跳過數字4)if (digit > 4) {digit--;}// 將調整后的數字視為九進制數,逐位轉換為十進制result = result * 9 + digit;}System.out.println(result); // 輸出實際費用}
}

代碼解析

  1. 輸入處理

    • String n = scanner.nextLine().trim():讀取輸入字符串并去除首尾空格。
    • 例如輸入 "100",處理后得到 "100"
  2. 遍歷每一位字符

    • for (int i = 0; i < n.length(); i++):循環處理每一位數字。
    • char c = n.charAt(i):取出第 i 位的字符。
    • int digit = c - '0':將字符轉換為數字,例如 '5' → 5
  3. 調整數字位

    • if (digit > 4) { digit--; }:若當前位大于 4,則減 1。例如 5 → 47 → 6
  4. 九進制轉十進制

    • result = result * 9 + digit:每一步將結果乘以 9(進制基數),并加上當前位的值。
    • 例如輸入 "100",處理后的各位為 1, 0, 0,計算過程為:
      • 0*9 + 1 = 1
      • 1*9 + 0 = 9
      • 9*9 + 0 = 81

示例測試

  1. 輸入:5

    • 調整后的數字位:4
    • 計算過程:0*9 + 4 = 4
    • 輸出:4
  2. 輸入:17

    • 調整后的數字位:1 → 1,7 → 6
    • 計算過程:0*9 + 1 = 11*9 + 6 = 15
    • 輸出:15
  3. 輸入:100

    • 調整后的數字位:1 → 1,0 → 0,0 → 0
    • 計算過程:0*9 + 1 = 11*9 + 0 = 99*9 + 0 = 81
    • 輸出:81

綜合分析

  1. 時間復雜度:O(n)

    • 只需遍歷輸入字符串一次,時間復雜度與輸入長度線性相關。
  2. 空間復雜度:O(1)

    • 僅需常數空間存儲中間變量。
  3. 正確性保證

    • 進制轉換思想:通過將計費表讀數視為九進制數,嚴格對應排除數字 4 后的數值順序。
    • 邊界處理:正確處理每一位數字的調整邏輯,確保所有含 4 的數值被跳過。
  4. 優勢

    • 高效:線性時間復雜度,適用于最大輸入(888,888,888)。
    • 簡潔:代碼邏輯清晰,直接映射問題模型。
  5. 適用場景

    • 適用于所有需要處理數字跳過的場景,例如類似的進制轉換問題。

python

問題分析

出租車計費表跳過了所有含數字4的數值。例如,顯示5時實際費用是4(跳過了4),顯示17時實際是15(跳過4、14)。我們需要將顯示數值轉換為真實費用,相當于將數值轉換到排除4的"偽九進制"體系中。


解題思路

  1. 進制轉換思想:將每個數字位視為0-8范圍(排除4),等效于九進制。
  2. 逐位調整:對于每一位數字,若大于4則減1(跳過4),然后整體按九進制轉十進制。

代碼實現

n = 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84427.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84427.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84427.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

40 歲 Windows 開啟 AI 轉型:從系統到生態的智能重構

在科技快速發展的當下&#xff0c;人工智能成為驅動各領域變革的核心力量&#xff0c;擁有 40 年歷史的 Windows 也開啟了向 AI 的全面轉型。2025 年 5 月 19-22 日西雅圖 Build 2025 開發者大會上&#xff0c;微軟展示了 Windows 11 向 AI 智能體核心平臺轉型的戰略&#xff0…

Python實例題:Python3實現可控制肉雞的反向Shell

目錄 Python實例題 題目 代碼實現 reverse_shell_client.py reverse_shell_server.py 實現原理 反向連接機制&#xff1a; 命令執行與傳輸&#xff1a; 功能特點&#xff1a; 關鍵代碼解析 服務端命令處理 客戶端命令執行 客戶端持久化連接 使用說明 啟動服務端…

AWS EC2 使用Splunk DB connect 連接 RDS mysql

1: 先創建 RDS mysql: 我們選擇free: 選擇free 過后,自動生成single instance, 沒有垮AZ 的db 設置。 選擇密碼登入: 注意:上面設置密碼的時候,特別提示:不能有特殊字符,我就設置了: mypassword 下面可以選擇通過EC2 連接,當然也可以不選:

SAP重塑云ERP應用套件

在2025年Sapphire大會上&#xff0c;SAP正式發布了其云ERP產品的重塑計劃&#xff0c;推出全新“Business Suite”應用套件&#xff0c;并對供應鏈相關應用進行AI增強升級。這一變革旨在簡化新客戶進入SAP生態系統的流程&#xff0c;同時為現有客戶提供更加統一、智能和高效的業…

初識 RocketMQ 知識總結:基礎概念、架構解析、核心特性與應用場景

Apache RocketMQ 是一款由阿里巴巴開源的分布式消息中間件&#xff0c;具有高吞吐量、低延遲、高可靠性等特點&#xff0c;廣泛應用于互聯網、金融、電商等領域。以下從多個維度對 RocketMQ 進行全面解析&#xff1a; 一、RocketMQ 基礎概念 1. 定義與定位 分布式消息中間件…

[特殊字符] UI-Trans:字節跳動發布的多模態 UI 轉換大模型工具,重塑界面智能化未來

2025 年&#xff0c;字節跳動&#xff08;ByteDance&#xff09;發布了革命性的多模態 UI 轉換模型 —— UI-Trans&#xff0c;引發了業界廣泛關注。作為一款融合視覺理解、語義分析與用戶交互意圖解析的 AI 工具&#xff0c;UI-Trans 在多個領域展現出強大能力&#xff0c;正在…

這個方法關閉PowerBI賬戶的安全默認值

這個方法關閉PowerBI賬戶的安全默認值 如果PowerBI賬戶是在 2019 年 10 月 22 日當天或之后創建的&#xff0c;則可能會自動啟用安全默認值&#xff0c;登錄賬戶會彈出彈框&#xff0c;如圖&#xff1a; 使用四步就可以關閉此彈框的提示&#xff1a; 第一步&#xff1a;轉到 A…

【Linux】磁盤空間不足

錯誤提示: no space left on device 經典版&#xff08;block占用&#xff09; 模擬 dd if/dev/zero of/var/log/nginx.log bs1M count2000排查 #1. df -h 查看哪里空間不足,哪個分區#2. du -sh詳細查看目錄所占空間 du -sh /* 排查占用空間大的目錄 du -sh /var/* du…

計算機視覺---YOLOv2

YOLOv2講解 一、YOLOv2 整體架構與核心特性 YOLOv2&#xff08;You Only Look Once v2&#xff09;于2016年發布&#xff0c;全稱為 YOLO9000&#xff08;因支持9000類目標檢測&#xff09;&#xff0c;在YOLOv1基礎上進行了多項關鍵改進&#xff0c;顯著提升了檢測精度和速度…

【深度學習】1. 感知器,MLP, 梯度下降,激活函數,反向傳播,鏈式法則

一、感知機 對于分類問題&#xff0c;我們設定一個映射&#xff0c;將x通過函數f(x)映射到y 1. 感知機的基本結構 感知機&#xff08;Perceptron&#xff09;是最早期的神經網絡模型&#xff0c;由 Rosenblatt 在 1958 年提出&#xff0c;是現代神經網絡和深度學習模型的雛形…

IP、子網掩碼、默認網關、DNS

IP、子網掩碼、默認網關、DNS 1. 概述1.1 windows配置處 2.IP 地址&#xff08;Internet Protocol Address&#xff09;2.1 公網ip2.2 內網ip2.3 &#x1f310; 公網 IP 與內網 IP 的關系&#xff08;NAT&#xff09; 3. 子網掩碼&#xff08;Subnet Mask&#xff09;4. 默認網…

Azure 公有云基礎架構與核心服務:從基礎到實踐指南

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 一、基礎概念 Azure 的基礎架構由多個核心組件構成&#xff0c;理解這些概念是掌握其技術框架的第一步&#xff1a; 地理區域&#xff08;Geographic R…

Ajax01-基礎

一、AJAX 1.AJAX概念 使瀏覽器的XMLHttpRequest對象與服務器通信 瀏覽器網頁中&#xff0c;使用 AJAX技術&#xff08;XHR對象&#xff09;發起獲取省份列表數據的請求&#xff0c;服務器代碼響應準備好的省份列表數據給前端&#xff0c;前端拿到數據數組以后&#xff0c;展…

使用防火墻禁止程序聯網(這里禁止vscode)

everything搜一下Code.exe的安裝路徑&#xff1a;D:\downloadApp1\vscode\Microsoft VS Code\Code.exe 方法&#xff1a;使用系統防火墻&#xff08;推薦&#xff09; Windows 通過防火墻阻止 VS Code&#xff1a; 打開 Windows Defender 防火墻&#xff08;控制面板 > 系統…

微信小程序 隱私協議彈窗授權

開發微信小程序的第一步往往是隱私協議授權&#xff0c;尤其是在涉及用戶隱私數據時&#xff0c;必須確保用戶明確知曉并同意相關隱私政策。我們才可以開發后續的小程序內容。友友們在按照文檔開發時可能會遇到一些問題&#xff0c;我把所有的授權方法和可能遇到的問題都整理出…

JVM規范之棧幀

JVM規范之棧幀 前言正文概述局部變量表操作數棧動態鏈接 總結參考鏈接 前言 上一篇文章了解了JVM規范中的運行時數據區&#xff1a; JVM規范之運行時數據區域 其中&#xff0c;棧是JVM線程私有的內存區&#xff0c;棧中存儲的單位是幀&#xff08;frames&#xff09;&#xff…

SGMD辛幾何模態分解

SGMD辛幾何模態分解 運行包含頻譜圖相關系數圖 Matlab語言 算法近幾年剛提出&#xff0c;知網還沒幾個人用&#xff0c;你先用&#xff0c;你就是創新&#xff01; 算法新穎小眾&#xff0c;用的人很少&#xff0c;包含分解圖、頻譜圖、相關系數圖&#xff0c;效果如圖所示&a…

計算機網絡總結(物理層,鏈路層)

目錄 第一章 概述 1.基本概念 2.- C/S模式&#xff0c;B/S模式&#xff0c;P2P模式 3.- LAN,WAN,MAN,PAN的劃分 4.電路交換與分組交換&#xff0c;數據報交換和虛電路交換 第二章 物理層 1.信號編碼&#xff1a;不歸零編碼&#xff0c;曼切斯特編碼 2.幾種復用技術的特…

臺系廠商SSD主控之爭:Phison對決SMI

近日&#xff0c;臺系SSD主控廠商Phison和Silicon Motion之間圍繞主控性能的爭論引發關注&#xff0c;焦點集中在Gen5 SSD的功耗和速度等關鍵指標上。 Phison的E28 Gen5 SSD控制器已推出一段時間&#xff0c;是市場上一些最快存儲設備的“心臟”。其主要競爭對手Silicon Motion…

醫學影像科研概述與研究倫理

關鍵要點 醫學影像科研通過開發和優化影像技術(如X射線、CT、MRI等)推動疾病診斷和治療進步。研究需遵循核心倫理原則:受益(為患者和社會帶來益處)、無害(避免傷害)、自主(尊重患者選擇權)和公正(公平對待參與者)。醫學影像科研的特殊倫理問題包括知情同意、隱私保護…