**计算电动车续航里程**
2026 华为OD机试真题 8月2日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
题目描述
给定电动车的电池容量 capacity(kWh)、能耗效率 efficiency(kWh/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 分题型
补充约束
- 电池容量范围:20≤capacity≤200 (非整数需向下取整);
- 标准能耗效率范围:5≤efficiency≤30;
- 驾驶场景仅支持:"city"(城市)
/场景修正系数 kc0=1、"highway"(高速)1/场景修正系数 kc1=0.92、"mountain"(山路)2/场景修正系数 kc2=0.85; - 结果要求:有效续航里程需四舍五入为整数,输出里程
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
解题思路
核心思想
题目给出了明确公式,关键是按容量分段计算等效电池容量,并在指定位置进行四舍五入。
电池容量需要先向下取整。取整后的容量最多分成三段:前 80kWh 按 0.95 折算,80~160kWh 部分按 0.98 折算,超过 160kWh 的部分按 1.0 折算。得到等效容量后计算理论续航,再乘以总体损耗系数,最后四舍五入为整数。
算法步骤
- 按示例格式读取一行输入,用英文逗号切分出
capacity、efficiency、scene。 - 将
capacity向下取整为整数c。 - 按容量分段计算等效容量:
c <= 80:c * 0.9580 < c <= 160:80 * 0.95 + (c - 80) * 0.98c > 160:80 * 0.95 + 80 * 0.98 + (c - 160) * 1.0
- 计算理论续航
equivalentCapacity / efficiency * 100,四舍五入保留 4 位小数。 - 根据
scene选择场景系数kc,计算kd = 0.956 * kc,四舍五入保留 4 位小数。 - 输出
theoreticalRange * kd四舍五入后的整数。
正确性说明
算法先对容量向下取整,符合题目对非整数容量的要求。随后按照三个容量区间分别累加等效容量,覆盖了所有可能的容量范围,且每一段的修正系数与题目一致。
理论续航和总体损耗系数都在题目要求的位置保留 4 位小数,最后再对有效续航进行整数四舍五入。因此算法输出与题目公式完全一致。
复杂度分析
本题只进行常数次计算。
- 时间复杂度:
O(1)。 - 空间复杂度:`O(