**计算电动车续航里程**

2026 华为OD机试真题 8月2日华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

给定电动车的电池容量 capacitykWh)、能耗效率 efficiencykWh/100km)、驾驶场景(城市 / 高速 / 山路,int 类型,分别是 0/1/2),计算该车的有效续航里程(km)。

核心公式:理论续航里程 = (电池容量 容量能耗修正系数) / 能耗效率 100;(结果按四舍五入保留 4 位小数)

有效续航里程 = 理论续航里程 * 总体损耗系数 ,相关系数计算规则如下:

容量能耗修正数 Kp:不同容量下,能效效率不同,分段进行能效效率修正

  • 零段:电池容量 capacity>=160kWh 时,kp0 = 1(无损耗)
  • 一段:电池容量 160kWh>capacity>80kWh 时,kp1 = 0.98
  • 二段:电池容量 capacity<=80kWh 时,kp2 = 0.95

总体损耗系数 kd:基础损耗系数为 kb (0.956) * 场景修正系数 kc(结果按四舍五入保留 4 位小数)

2026 华为OD机试真题 8月2日华为OD上机新系统考试真题 100 分题型

补充约束

  1. 电池容量范围:20≤capacity≤200 (非整数需向下取整);
  2. 标准能耗效率范围:5≤efficiency≤30;
  3. 驾驶场景仅支持:"city"(城市)/场景修正系数 kc0=1、"highway"(高速)1/场景修正系数 kc1=0.92、"mountain"(山路)2/场景修正系数 kc2=0.85;
  4. 结果要求:有效续航里程需四舍五入为整数,输出里程 km

输入描述

输入为一行,包含三个值:电池容量(可能含小数)、能耗效率(可能含小数)、驾驶场景(整数 0/1/2),以逗号分隔。

输出描述

输出一个整数,表示四舍五入后的有效续航里程(单位:km)。

示例1

输入

75.8,14.3,1

输出

438

说明

电池容量向下取整:75.8→75;能耗效率:14.3

  • 零段:电池容量 capacity>=160kWh 时,kp0=1(无损耗),75 不在此段内,电池容量等效为 0∗1
  • 一段:电池容量 160kWh>capacity>80kWh 时,kp1=0.98 75 不在此段内,电池容量等效为 0∗0.98
  • 二段:电池容量 capacity<=80kWh 时,kp2=0.95 75 在此段内,电池容量等效为 75∗0.95

理论里程 =(0∗1+0∗0.98+75∗0.95)/14.3∗100=498.2517km(保留 4 位);

总体损耗系数计算:0.956(基础)∗0.92(高速)=0.8795(保留 4 位);

里程 =498.2517∗0.8795=438.2124126

四舍五入后的有效里程 =438

示例2

输入

135.1,12.3,2

输出

858

说明

电池容量向下取整:135.1→135;能耗效率:12.3

  • 零段:电池容量 capacity>=160kWh 时,kp0=1(无损耗),135 不在此段内,电池容量等效为 0∗1
  • 一段:电池容量 160kWh>capacity>80kWh 时,kp1=0.98 135 在此段内,电池容量等效为 (135−80)∗0.98
  • 二段:电池容量 capacity<=80kWh 时,kp2=0.95 剩余的电池容量 80 在此段内,电池容量等效为 80∗0.95

理论里程 =(0∗1+(135−80)∗0.98+80∗0.95)/12.3∗100=1056.0976km(保留 4 位)

总体损耗系数:0.956(基础)∗0.85(山地)=0.8126(保留 4 位);

里程 =1056.0976∗0.8126=858.1840908

四舍五入后的有效里程 =858

解题思路

核心思想

题目给出了明确公式,关键是按容量分段计算等效电池容量,并在指定位置进行四舍五入。

电池容量需要先向下取整。取整后的容量最多分成三段:前 80kWh0.95 折算,80~160kWh 部分按 0.98 折算,超过 160kWh 的部分按 1.0 折算。得到等效容量后计算理论续航,再乘以总体损耗系数,最后四舍五入为整数。

算法步骤

  1. 按示例格式读取一行输入,用英文逗号切分出 capacityefficiencyscene
  2. capacity 向下取整为整数 c
  3. 按容量分段计算等效容量:
    • c <= 80c * 0.95
    • 80 < c <= 16080 * 0.95 + (c - 80) * 0.98
    • c > 16080 * 0.95 + 80 * 0.98 + (c - 160) * 1.0
  4. 计算理论续航 equivalentCapacity / efficiency * 100,四舍五入保留 4 位小数。
  5. 根据 scene 选择场景系数 kc,计算 kd = 0.956 * kc,四舍五入保留 4 位小数。
  6. 输出 theoreticalRange * kd 四舍五入后的整数。

正确性说明

算法先对容量向下取整,符合题目对非整数容量的要求。随后按照三个容量区间分别累加等效容量,覆盖了所有可能的容量范围,且每一段的修正系数与题目一致。

理论续航和总体损耗系数都在题目要求的位置保留 4 位小数,最后再对有效续航进行整数四舍五入。因此算法输出与题目公式完全一致。

复杂度分析

本题只进行常数次计算。

  • 时间复杂度:O(1)
  • 空间复杂度:`O(
THE END