华为OD机试新系统真题【计算电动车续航里程】
计算电动车续航里程(C/C/Py/Java/Js/Go)题解华为OD机试新系统真题 华为OD上机考试新系统真题 8月2号 100分题型华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录机考题库 算法考点详解题目内容给定电动车的电池容量capacitykWh、能耗效率efficiencykWh/100km、驾驶场景城市 / 高速 / 山路int类型分别是0/1/2计算该车的有效续航里程km。核心公式理论续航里程 (电池容量 * 容量能耗修正系数) / 能耗效率 *100结果按四舍五入保留4位小数有效续航里程 理论续航里程 * 总体损耗系数 相关系数计算规则如下容量能耗修正数 Kp不同容量下能效效率不同分段进行能效效率修正零段电池容量capacity160kWh时kp0 1(无损耗)一段电池容量160kWhcapacity80kWh时kp1 0.98二段电池容量capacity80kWh时kp2 0.95总体损耗系数 kd基础损耗系数为kb (0.956)* 场景修正系数kc结果按四舍五入保留4位小数补充约束:电池容量范围20 ≤ capacity ≤ 200 20 \le \text{capacity} \le 20020≤capacity≤200非整数需向下取整标准能耗效率范围5 ≤ efficiency ≤ 30 5 \le \text{efficiency} \le 305≤efficiency≤30驾驶场景仅支持“city”城市0/场景修正系数kc0 1 \text{kc0}1kc01、“highway”高速1/场景修正系数kc1 0.92 \text{kc1}0.92kc10.92、“mountain”山路2/场景修正系数kc2 0.85 \text{kc2}0.85kc20.85结果要求有效续航里程需四舍五入为整数输出里程km。输入描述输入为一行包含三个值电池容量可能含小数、能耗效率可能含小数、驾驶场景整数0/1/2以逗号分隔。输出描述输出一个整数表示四舍五入后的有效续航里程单位km。样例1输入75.8 14.3 1输出438说明电池容量向下取整75.8 → 75 75.8 \rightarrow 7575.8→75能耗效率14.3 14.314.3零段电池容量capacity 160 kWh \text{capacity}160\text{kWh}capacity160kWh时kp0 1 \text{kp0}1kp01无损耗75 7575不在此段内电池容量等效为0 ∗ 1 0*10∗1一段电池容量160 kWh capacity 80 kWh 160\text{kWh}\text{capacity}80\text{kWh}160kWhcapacity80kWh时kp1 0.98 \text{kp1}0.98kp10.9875 7575不在此段内电池容量等效为0 ∗ 0.98 0*0.980∗0.98二段电池容量capacity 80 kWh \text{capacity}80\text{kWh}capacity80kWh时kp2 0.95 \text{kp2}0.95kp20.9575 7575在此段内电池容量等效为75 ∗ 0.95 75*0.9575∗0.95理论里程 ( 0 ∗ 1 0 ∗ 0.98 75 ∗ 0.95 ) / 14.3 ∗ 100 498.2517 km (0*10*0.9875*0.95)/14.3*100498.2517\text{km}(0∗10∗0.9875∗0.95)/14.3∗100498.2517km(保留4 44位)总体损耗系数计算0.956 0.9560.956基础∗ 0.92 * 0.92∗0.92高速 0.8795 0.87950.8795(保留4 44位)里程 498.2517 ∗ 0.8795 438.2124126 498.2517*0.8795438.2124126498.2517∗0.8795438.2124126四舍五入后的有效里程 438 438438样例2输入135.1 12.3 2输出858说明电池容量向下取整135.1 → 135 135.1 \rightarrow 135135.1→135能耗效率12.3 12.312.3零段电池容量capacity 160 kWh \text{capacity}160\text{kWh}capacity160kWh时kp0 1 \text{kp0}1kp01无损耗135 135135不在此段内电池容量等效为0 ∗ 1 0*10∗1一段电池容量160 kWh capacity 80 kWh 160\text{kWh}\text{capacity}80\text{kWh}160kWhcapacity80kWh时kp1 0.98 \text{kp1}0.98kp10.98135 135135在此段内电池容量等效为( 135 − 80 ) ∗ 0.98 (135-80)*0.98(135−80)∗0.98二段电池容量capacity 80 kWh \text{capacity}80\text{kWh}capacity80kWh时kp2 0.95 \text{kp2}0.95kp20.95剩余的电池容量80 8080在此段内电池容量等效为80 ∗ 0.95 80*0.9580∗0.95理论里程 ( 0 ∗ 1 ( 135 − 80 ) ∗ 0.98 80 ∗ 0.95 ) / 12.3 ∗ 100 1056.0976 km (0*1(135-80)*0.9880*0.95)/12.3*1001056.0976\text{km}(0∗1(135−80)∗0.9880∗0.95)/12.3∗1001056.0976km(保留4 44位)总体损耗系数0.956 0.9560.956基础∗ 0.85 * 0.85∗0.85山地 0.8126 0.81260.8126(保留4 44位)里程 1056.0976 ∗ 0.8126 858.1840908 1056.0976*0.8126858.18409081056.0976∗0.8126858.1840908四舍五入后的有效里程 858 858858题解思路模拟将电池容量向下取整分段计算每一段能耗修正数得到能耗修正数总和。依照公式理论续航里程 (电池容量 * 容量能耗修正系数) / 能耗效率 * 100得到理论续航里程并四舍五入保留4位小数。计算总体损耗系数按照公式基础损耗系数为 kb (0.956) * 场景修正系数 kc四舍五入保留4位小数总体损耗系数 * 理论续航里程计算实际里程并四舍五入保留整数。c#includebits/stdc.husingnamespacestd;intsolve(doublecapacity,doubleefficiency,inttype){// 向下取整intrealCapacity(int)floor(capacity);// 计算每一段能耗修正数doubleseg0max(0,realCapacity-160)*1.0;doubleseg1max(0,min(realCapacity,160)-80)*0.98;doubleseg2min(realCapacity,80)*0.95;doublecoefficientseg0seg1seg2;// 计算理论续航里程doubletheoryDistancecoefficient/efficiency*100;// 四舍五入保留4位小数theoryDistanceround(theoryDistance*10000)/10000.0;doublekc[3]{1.0,0.92,0.85};// 计算总体损耗系数 并保留4位小数doublekdround(0.956*kc[type]*10000)/10000.0;// 有效续航里程 并四舍五入保留正数returnround(theoryDistance*kd);}intmain(){doublecapacity,efficiency;inttype;cincapacityefficiencytype;coutsolve(capacity,efficiency,type);return0;}Javaimportjava.util.*;publicclassMain{staticintsolve(doublecapacity,doubleefficiency,inttype){// 向下取整intrealCapacity(int)Math.floor(capacity);// 计算每一段能耗修正数doubleseg0Math.max(0,realCapacity-160)*1.0;doubleseg1Math.max(0,Math.min(realCapacity,160)-80)*0.98;doubleseg2Math.min(realCapacity,80)*0.95;doublecoefficientseg0seg1seg2;// 计算理论续航里程doubletheoryDistancecoefficient/efficiency*100;// 四舍五入保留4位小数theoryDistanceMath.round(theoryDistance*10000)/10000.0;double[]kc{1.0,0.92,0.85};// 计算总体损耗系数 并保留4位小数doublekdMath.round(0.956*kc[type]*10000)/10000.0;// 有效续航里程 并四舍五入保留正数return(int)Math.round(theoryDistance*kd);}publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);doublecapacitysc.nextDouble();doubleefficiencysc.nextDouble();inttypesc.nextInt();System.out.println(solve(capacity,efficiency,type));sc.close();}}Pythonimportmathdefsolve(capacity,efficiency,type):# 向下取整real_capacityint(math.floor(capacity))# 计算每一段能耗修正数seg0max(0,real_capacity-160)*1.0seg1max(0,min(real_capacity,160)-80)*0.98seg2min(real_capacity,80)*0.95coefficientseg0seg1seg2# 计算理论续航里程theory_distancecoefficient/efficiency*100# 四舍五入保留4位小数theory_distanceround(theory_distance,4)kc[1.0,0.92,0.85]# 计算总体损耗系数 并保留4位小数kdround(0.956*kc[type],4)# 有效续航里程 并四舍五入保留正数returnround(theory_distance*kd)if__name____main__:capacity,efficiency,typeinput().split()capacityfloat(capacity)efficiencyfloat(efficiency)typeint(type)print(solve(capacity,efficiency,type))JavaScriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});rl.on(line,function(line){letarrline.trim().split(/\s/);letcapacityNumber(arr[0]);letefficiencyNumber(arr[1]);lettypeNumber(arr[2]);functionsolve(capacity,efficiency,type){// 向下取整letrealCapacityMath.floor(capacity);// 计算每一段能耗修正数letseg0Math.max(0,realCapacity-160)*1.0;letseg1Math.max(0,Math.min(realCapacity,160)-80)*0.98;letseg2Math.min(realCapacity,80)*0.95;letcoefficientseg0seg1seg2;// 计算理论续航里程lettheoryDistancecoefficient/efficiency*100;// 四舍五入保留4位小数theoryDistanceMath.round(theoryDistance*10000)/10000.0;letkc[1.0,0.92,0.85];// 计算总体损耗系数 并保留4位小数letkdMath.round(0.956*kc[type]*10000)/10000.0;// 有效续航里程 并四舍五入保留正数returnMath.round(theoryDistance*kd);}console.log(solve(capacity,efficiency,type));rl.close();});Gopackagemainimport(bufiofmtmathos)funcsolve(capacityfloat64,efficiencyfloat64,typint)int{// 向下取整realCapacity:int(math.Floor(capacity))// 计算每一段能耗修正数seg0:math.Max(0,float64(realCapacity-160))*1.0seg1:math.Max(0,math.Min(float64(realCapacity),160)-80)*0.98seg2:math.Min(float64(realCapacity),80)*0.95coefficient:seg0seg1seg2// 计算理论续航里程theoryDistance:coefficient/efficiency*100// 四舍五入保留4位小数theoryDistancemath.Round(theoryDistance*10000)/10000.0kc:[]float64{1.0,0.92,0.85}// 计算总体损耗系数 并保留4位小数kd:math.Round(0.956*kc[typ]*10000)/10000.0// 有效续航里程 并四舍五入保留正数returnint(math.Round(theoryDistance*kd))}funcmain(){in:bufio.NewReader(os.Stdin)varcapacity,efficiencyfloat64vartypintfmt.Fscan(in,capacity,efficiency,typ)fmt.Println(solve(capacity,efficiency,typ))}C语言#includestdio.h#includemath.hintsolve(doublecapacity,doubleefficiency,inttype){// 向下取整intrealCapacity(int)floor(capacity);// 计算每一段能耗修正数doubleseg0fmax(0,realCapacity-160)*1.0;doubleseg1fmax(0,fmin(realCapacity,160)-80)*0.98;doubleseg2fmin(realCapacity,80)*0.95;doublecoefficientseg0seg1seg2;// 计算理论续航里程doubletheoryDistancecoefficient/efficiency*100;// 四舍五入保留4位小数theoryDistanceround(theoryDistance*10000)/10000.0;doublekc[3]{1.0,0.92,0.85};// 计算总体损耗系数 并保留4位小数doublekdround(0.956*kc[type]*10000)/10000.0;// 有效续航里程 并四舍五入保留正数return(int)round(theoryDistance*kd);}intmain(){doublecapacity,efficiency;inttype;scanf(%lf %lf %d,capacity,efficiency,type);printf(%d,solve(capacity,efficiency,type));return0;}

相关新闻

图形编程基础:从点线面到光栅化算法的核心原理与实践

图形编程基础:从点线面到光栅化算法的核心原理与实践

1. 从“点”开始:理解图形绘制的基石 聊到图形编程,无论是做游戏、做数据可视化,还是搞UI设计,总绕不开一个最基础、也最核心的环节:基本图形绘制。你可能觉得,画个点、画条线,这有什么好讲的&a…

2026/10/11 7:04:51 阅读更多 →
Spring Boot+Redis+Kafka构建高并发电商系统实战

Spring Boot+Redis+Kafka构建高并发电商系统实战

1. 项目概述"Java大厂面试实战:Spring BootRedisKafka电商高并发场景深度解析"这个标题直指当前Java技术栈中最核心的三大技术组合在实际业务场景中的应用。作为一名经历过多次大厂技术面试的Java开发者,我深知这套技术组合在电商、金融、社交…

2026/10/8 22:10:36 阅读更多 →
Mate Engine终极指南:免费开源的桌面虚拟伴侣软件如何改变你的数字生活

Mate Engine终极指南:免费开源的桌面虚拟伴侣软件如何改变你的数字生活

Mate Engine终极指南:免费开源的桌面虚拟伴侣软件如何改变你的数字生活 【免费下载链接】Mate-Engine A free Desktop Mate alternative with a lightweight interface and custom VRM support, though with more features. 项目地址: https://gitcode.com/gh_mir…

2026/10/3 7:25:48 阅读更多 →

最新新闻

Python字典的__missing__魔术方法:缺失键的优雅处理机制

Python字典的__missing__魔术方法:缺失键的优雅处理机制

就像所有键都找不到时会手足无措的字典一样,Python里的dict其实留了一扇专门处理这种情况的门,这门就是魔术方法__missing__。它是字典变体类的核心钩子:当d[key]访问的键不在字典里时,解释器不会直接抛KeyError,而是先…

2026/10/13 14:00:49 阅读更多 →
SELinux强制访问控制实战:从Permissive调试到Enforcing上线

SELinux强制访问控制实战:从Permissive调试到Enforcing上线

1. 这不是“开个开关”那么简单:SELinux到底在防什么,又为什么总被关掉?“ENGINEER 02:系统安全保护 启用SELinux保护的详细教程步骤,学不会来找我”——这个标题里藏着一个行业内心照不宣的真相:绝大多数人…

2026/10/13 14:00:49 阅读更多 →
Canvas图编辑器核心实现:数据驱动、交互机制与性能优化

Canvas图编辑器核心实现:数据驱动、交互机制与性能优化

做了几年前端和图形方向的东西,我最大的感受是:绘图类的项目,难的不是画一根线、拖一个框,而是把“交互”和“数据”揉在一起还能保持稳定。最近我在做一个内部工具,名字就叫 diagram-design,用途是给业务系…

2026/10/13 14:00:49 阅读更多 →
LiteLLM:轻量级大模型网关与智能调度中间件实战指南

LiteLLM:轻量级大模型网关与智能调度中间件实战指南

1. 项目概述:LiteLLM 是什么,它解决的不是“模型调用”而是“模型调度”的本质问题LiteLLM 这个名字刚出现时,很多人第一反应是:“又一个 LLM 封装库?”——但实际用过两周后,我把它从测试环境直接推到了生…

2026/10/13 14:00:49 阅读更多 →
C++ gRPC grpc::Status 状态码与错误处理排查实战指南

C++ gRPC grpc::Status 状态码与错误处理排查实战指南

最近经常有朋友拿着一堆 gRPC 报错来问我:C 项目里客户端跑着跑着就冒出 unexpected status 401 unauthorized: incorrect api key provided 、 429 too many requests 、 502 bad gateway 这些东西,日志打了一屏,却不知道下一步该点哪…

2026/10/13 14:00:49 阅读更多 →
Slicer 在 GNU/Linux 下的 C++ 调试实战:GDB 附加、执行器环境与 Core 转储分析

Slicer 在 GNU/Linux 下的 C++ 调试实战:GDB 附加、执行器环境与 Core 转储分析

医疗健康图像处理数据可视化桌面应用3D渲染 【免费下载链接】Slicer Multi-platform, free open source software for visualization and image computing. 项目地址: https://gitcode.com/gh_mirrors/sl/Slicer 点击查看 免费下载 本文基于 Slicer 官方文档 Docs/…

2026/10/13 13:59:47 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →