news 2026/3/2 7:33:04

华为OD机考双机位C卷 - 风险投资计划(Java Python JS C/C++ GO )

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD机考双机位C卷 - 风险投资计划(Java Python JS C/C++ GO )

最新华为上机考试

真题目录:点击查看目录

华为OD面试真题精选:点击立即查看
2025华为od机试双机位C卷

题目描述

某公司有一笔资金(m万元)计划进行投资,前期调研分析了多种(n种)产品,分析得出了每种产品的预期收益率(e%)和风险等级(记为r,用1-10表示。数值越大表示风险越高),公司风控部门要求投资产品的风险等级不能超过x且单个产品的投资金额不能超过y元,请规划一个满足公司丰空要求的最大预期收益的投资方案并输出改方案的预期收益。

输入描述

输入的第一行为可用于投资的金额m(万元),调研的投资产品种类数n(种),风险部门要求的最高可以投资风险等级x。单个产品的最大投资金额y(万元),用空格分割;

第二行开始为每个产品的预期收益率e(%)和每个产品的风险等级r,用空格分割。

不考虑非法输入,所有输入都是正整数,输出结果四舍五入取整,输入输出均小于2^31

输出描述

输出计算的最大预期收益

示例1

输入

100 7 5 10 10 3 15 5 14 3 20 7 18 6 17 4 30 9

输出

6

说明

解题思路

Java

importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.Scanner;// 定义产品类,包含收益率和风险等级classProduct{intrate;// 预期收益率 eintrisk;// 风险等级 rpublicProduct(intrate,intrisk){this.rate=rate;this.risk=risk;}}publicclassMain{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);// 1. 读取第一行参数if(!scanner.hasNext())return;intm=scanner.nextInt();// 总资金intn=scanner.nextInt();// 产品种类数intx=scanner.nextInt();// 最大允许风险等级inty=scanner.nextInt();// 单个产品最大投资额List<Product>validProducts=newArrayList<>();// 2. 读取产品信息并进行初步筛选for(inti=0;i<n;i++){inte=scanner.nextInt();intr=scanner.nextInt();// 只有风险等级 <= x 的产品才会被考虑if(r<=x){validProducts.add(newProduct(e,r));}}// 3. 贪心策略:按预期收益率 e 降序排序// 如果收益率高,优先投资Collections.sort(validProducts,(p1,p2)->p2.rate-p1.rate);longtotalProfitRaw=0;// 用于存储 投资额 * 收益率 的总和 (防止溢出使用long)intcurrentMoney=m;// 当前剩余资金// 4. 遍历产品进行投资for(Productp:validProducts){// 如果没钱了,停止投资if(currentMoney<=0){break;}// 决定当前产品的投资额:取 剩余资金 和 单个限额y 中的较小值intinvestAmount=Math.min(currentMoney,y);// 累加收益 (注意:这里先不除以100,保留精度)// 收益 = 投资额 * (rate / 100) -> 累加 投资额 * ratetotalProfitRaw+=(long)investAmount*p.rate;// 扣除资金currentMoney-=investAmount;}// 5. 计算最终结果并四舍五入// 结果 = totalProfitRaw / 100.0// Math.round 会自动进行四舍五入longresult=Math.round(totalProfitRaw/100.0);System.out.println(result);}}

Python

# 定义产品类,包含收益率和风险等级classProduct:def__init__(self,rate,risk):self.rate=rate# 预期收益率 eself.risk=risk# 风险等级 rimportsys# 1. 读取第一行参数line=sys.stdin.readline().split()m,n,x,y=map(int,line)valid_products=[]# 2. 读取产品信息并进行初步筛选for_inrange(n):e,r=map(int,sys.stdin.readline().split())# 只有风险等级 <= x 的产品才会被考虑ifr<=x:valid_products.append(Product(e,r))# 3. 贪心策略:按预期收益率 e 降序排序# 如果收益率高,优先投资valid_products.sort(key=lambdap:p.rate,reverse=True)total_profit_raw=0# 用于存储 投资额 * 收益率 的总和current_money=m# 当前剩余资金# 4. 遍历产品进行投资forpinvalid_products:# 如果没钱了,停止投资ifcurrent_money<=0:break# 决定当前产品的投资额:取 剩余资金 和 单个限额y 中的较小值invest_amount=min(current_money,y)# 累加收益 (注意:这里先不除以100,保留精度)# 收益 = 投资额 * (rate / 100) -> 累加 投资额 * ratetotal_profit_raw+=invest_amount*p.rate# 扣除资金current_money-=invest_amount# 5. 计算最终结果并四舍五入result=round(total_profit_raw/100.0)print(result)

JavaScript

constreadline=require('readline');// 定义产品类,包含收益率和风险等级classProduct{constructor(rate,risk){this.rate=rate;// 预期收益率 ethis.risk=risk;// 风险等级 r}}constrl=readline.createInterface({input:process.stdin,output:process.stdout});letlines=[];rl.on('line',(line)=>{lines.push(line);});rl.on('close',()=>{// 1. 读取第一行参数const[m,n,x,y]=lines[0].split(' ').map(Number);constvalidProducts=[];// 2. 读取产品信息并进行初步筛选for(leti=1;i<=n;i++){const[e,r]=lines[i].split(' ').map(Number);// 只有风险等级 <= x 的产品才会被考虑if(r<=x){validProducts.push(newProduct(e,r));}}// 3. 贪心策略:按预期收益率 e 降序排序// 如果收益率高,优先投资validProducts.sort((p1,p2)=>p2.rate-p1.rate);lettotalProfitRaw=0;// 用于存储 投资额 * 收益率 的总和letcurrentMoney=m;// 当前剩余资金// 4. 遍历产品进行投资for(constpofvalidProducts){// 如果没钱了,停止投资if(currentMoney<=0){break;}// 决定当前产品的投资额:取 剩余资金 和 单个限额y 中的较小值constinvestAmount=Math.min(currentMoney,y);// 累加收益 (注意:这里先不除以100,保留精度)// 收益 = 投资额 * (rate / 100) -> 累加 投资额 * ratetotalProfitRaw+=BigInt(investAmount)*BigInt(p.rate);// 扣除资金currentMoney-=investAmount;}// 5. 计算最终结果并四舍五入constresult=Math.round(Number(totalProfitRaw)/100);console.log(result);});

C++

#include<iostream>#include<vector>#include<algorithm>#include<cmath>// 定义产品类,包含收益率和风险等级class Product{public:intrate;// 预期收益率 eintrisk;// 风险等级 rProduct(intrate,intrisk):rate(rate),risk(risk){}};intmain(){// 1. 读取第一行参数intm,n,x,y;std::cin>>m>>n>>x>>y;std::vector<Product>validProducts;// 2. 读取产品信息并进行初步筛选for(inti=0;i<n;i++){inte,r;std::cin>>e>>r;// 只有风险等级 <= x 的产品才会被考虑if(r<=x){validProducts.emplace_back(e,r);}}// 3. 贪心策略:按预期收益率 e 降序排序// 如果收益率高,优先投资std::sort(validProducts.begin(),validProducts.end(),[](constProduct&p1,constProduct&p2){returnp1.rate>p2.rate;});longlongtotalProfitRaw=0;// 用于存储 投资额 * 收益率 的总和intcurrentMoney=m;// 当前剩余资金// 4. 遍历产品进行投资for(constauto&p:validProducts){// 如果没钱了,停止投资if(currentMoney<=0){break;}// 决定当前产品的投资额:取 剩余资金 和 单个限额y 中的较小值intinvestAmount=std::min(currentMoney,y);// 累加收益 (注意:这里先不除以100,保留精度)// 收益 = 投资额 * (rate / 100) -> 累加 投资额 * ratetotalProfitRaw+=static_cast<longlong>(investAmount)*p.rate;// 扣除资金currentMoney-=investAmount;}// 5. 计算最终结果并四舍五入longlongresult=std::round(totalProfitRaw/100.0);std::cout<<result<<std::endl;return0;}

C语言

#include<stdio.h>#include<stdlib.h>#include<math.h>// 定义产品结构,包含收益率和风险等级typedefstruct{intrate;// 预期收益率 eintrisk;// 风险等级 r}Product;// 比较函数,用于排序intcompare(constvoid*a,constvoid*b){return((Product*)b)->rate-((Product*)a)->rate;}intmain(){// 1. 读取第一行参数intm,n,x,y;scanf("%d %d %d %d",&m,&n,&x,&y);Product*validProducts=malloc(n*sizeof(Product));intvalidCount=0;// 2. 读取产品信息并进行初步筛选for(inti=0;i<n;i++){inte,r;scanf("%d %d",&e,&r);// 只有风险等级 <= x 的产品才会被考虑if(r<=x){validProducts[validCount].rate=e;validProducts[validCount].risk=r;validCount++;}}// 3. 贪心策略:按预期收益率 e 降序排序// 如果收益率高,优先投资qsort(validProducts,validCount,sizeof(Product),compare);longlongtotalProfitRaw=0;// 用于存储 投资额 * 收益率 的总和intcurrentMoney=m;// 当前剩余资金// 4. 遍历产品进行投资for(inti=0;i<validCount;i++){// 如果没钱了,停止投资if(currentMoney<=0){break;}// 决定当前产品的投资额:取 剩余资金 和 单个限额y 中的较小值intinvestAmount=(currentMoney<y)?currentMoney:y;// 累加收益 (注意:这里先不除以100,保留精度)// 收益 = 投资额 * (rate / 100) -> 累加 投资额 * ratetotalProfitRaw+=(longlong)investAmount*validProducts[i].rate;// 扣除资金currentMoney-=investAmount;}// 5. 计算最终结果并四舍五入longlongresult=round(totalProfitRaw/100.0);printf("%lld\n",result);free(validProducts);return0;}

Go

packagemainimport("fmt""sort""math")// 定义产品结构,包含收益率和风险等级typeProductstruct{rateint// 预期收益率 eriskint// 风险等级 r}funcmain(){// 1. 读取第一行参数varm,n,x,yintfmt.Scan(&m,&n,&x,&y)validProducts:=[]Product{}// 2. 读取产品信息并进行初步筛选fori:=0;i<n;i++{vare,rintfmt.Scan(&e,&r)// 只有风险等级 <= x 的产品才会被考虑ifr<=x{validProducts=append(validProducts,Product{e,r})}}// 3. 贪心策略:按预期收益率 e 降序排序// 如果收益率高,优先投资sort.Slice(validProducts,func(i,jint)bool{returnvalidProducts[i].rate>validProducts[j].rate})totalProfitRaw:=int64(0)// 用于存储 投资额 * 收益率 的总和currentMoney:=m// 当前剩余资金// 4. 遍历产品进行投资for_,p:=rangevalidProducts{// 如果没钱了,停止投资ifcurrentMoney<=0{break}// 决定当前产品的投资额:取 剩余资金 和 单个限额y 中的较小值investAmount:=min(currentMoney,y)// 累加收益 (注意:这里先不除以100,保留精度)// 收益 = 投资额 * (rate / 100) -> 累加 投资额 * ratetotalProfitRaw+=int64(investAmount)*int64(p.rate)// 扣除资金currentMoney-=investAmount}// 5. 计算最终结果并四舍五入result:=int64(math.Round(float64(totalProfitRaw)/100.0))fmt.Println(result)}funcmin(a,bint)int{ifa<b{returna}returnb}

文章目录

  • 最新华为上机考试
  • 题目描述
  • 输入描述
  • 输出描述
  • 示例1
  • 解题思路
  • Java
  • Python
  • JavaScript
  • C++
  • C语言
  • Go

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/28 17:22:58

韩国延世大学AI新突破:让视频生成快65%的“拼配“技术

这项由韩国延世大学的宋智彬、权敏基、郑在锡和禹荣正领导的研究发表于2024年12月的计算机视觉领域顶级会议&#xff0c;论文编号为arXiv:2512.24724v1。有兴趣深入了解的读者可以通过该编号查询完整论文。制作一部高质量的AI视频&#xff0c;就像烹饪一道精美大餐。传统方法要…

作者头像 李华
网站建设 2026/2/28 10:47:06

基于SpringBoot的音爆票务摇滚乐队演出购票网站毕业设计项目源码

题目简介在摇滚音乐市场蓬勃发展、线下演出消费需求激增的背景下&#xff0c;传统票务模式存在 “信息更新滞后、购票流程繁琐、真伪难辨、余票不透明” 的痛点。基于 SpringBoot 构建的音爆票务摇滚乐队演出购票网站&#xff0c;适配平台管理员、演出主办方、乐队经纪、摇滚爱…

作者头像 李华
网站建设 2026/3/1 15:33:47

Kotlin类代码实战

用一段示例代码来讲解下kotlin的类&#xff0c;讲一下每一部分在干什么、为什么这么写&#xff0c;以及它们之间的关系。1. 基类 SmartDevice open class SmartDevice(val name: String, val category: String) {var deviceStatus "online"protected setopen val de…

作者头像 李华
网站建设 2026/3/2 0:47:19

第十课Open3D点云数据处理:均值滤波

1 均值滤波原理 2 与中值滤波对比 3 均值滤波代码实现 3.1 代码行实现 3.2 将均值滤波的实现封装到函数 pointCloud_mean_filter() 中 1 均值滤波原理 点云均值滤波是将空间中每个点的值替换为其周围点的坐标平均值。具体来说&#xff0c;对于给定点云中的每个点&#xff…

作者头像 李华
网站建设 2026/3/2 5:17:55

医疗健康领域的大数据运营:精准医疗的数据支撑

医疗健康领域的大数据运营&#xff1a;精准医疗的数据支撑关键词&#xff1a;医疗大数据、精准医疗、数据运营、健康管理、生物信息学、数据挖掘、临床决策支持摘要&#xff1a;本文以“医疗健康领域的大数据运营如何支撑精准医疗”为核心&#xff0c;通过生活化的类比和技术细…

作者头像 李华
网站建设 2026/2/28 22:29:53

前端考察【底层原理与浏览器内核】-浏览器渲染流水线

1. 浏览器的渲染流水线(Parse -> Style -> Layout -> Paint -> Composite )中,哪些操作会触发重排(Reflow)?如何通过底层原理设计极致的渲染性能优化方案?请结合具体场景说明。 核心答案框架 渲染流水线阶段: Parse(解析) -> Style(计算样式) -> …

作者头像 李华