news 2026/5/29 6:45:33

华为OD机试真题2025双机位C卷 PythonJS 实现【挑选宝石】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD机试真题2025双机位C卷 PythonJS 实现【挑选宝石】

目录

题目

思路

Code


题目

游乐园有一款互动游戏,游戏开始时会提供n个宝石,每个宝石都一个属性值a1,a2..an.玩家在游戏前可以挑选x颗宝石,将这些宝石的属性值相乘组成玩家的属性值。游戏玩家需要y点属性值,请帮助游戏玩家计算有多少种计算方式
输入描述
第一行:三个整数n,x,y
第一个整数n(0<n<20)表示宝石总数量。
第二个整数x(0<x<=n),表示可以选择宝石个数
第三个整数y,表示通过游戏需要的属性值


第二行:n个整数,a1,a2....an(-100<ai<100),表示每个宝石的属性值。


输出描述
输出一个整数,表示玩家可以通过游戏的挑选方式的数量

示例1

输入:

4 2 8
2 -3 4 5

输出:

3

思路

题目中N的取值范围较小 (N < 20),可以直接使用组合数学的方法暴力枚举所有可能的宝石组合,计算乘积并判断是否大于等于 Y即可。

Code

import sys from itertools import combinations def solve(): line1 = sys.stdin.readline().strip() if not line1: return n, x, y = map(int, line1.split()) # 读取第二行输入 a1, a2 ... an line2 = sys.stdin.readline().strip() if not line2: a = [] else: a = list(map(int, line2.split())) # 题目要求选择 x 颗宝石,计算乘积等于 y 的组合数 # 数据范围 n < 20,比较小,可以直接用 itertools.combinations 暴力枚举 count = 0 # 遍历所有长度为 x 的组合 for combo in combinations(a, x): product = 1 for val in combo: product *= val if product >= y: count += 1 print(count) if __name__ == "__main__": solve()

JS

const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let lines = []; rl.on('line', (line) => { lines.push(line.trim()); }); rl.on('close', () => { if (lines.length === 0) return; // 读取第一行输入 n, x, y const firstLine = lines[0].split(/\s+/); if (firstLine.length < 3) return; const n = parseInt(firstLine[0]); const x = parseInt(firstLine[1]); const y = parseInt(firstLine[2]); // 读取第二行输入 a1, a2 ... an let a = []; if (lines.length > 1 && lines[1] !== '') { a = lines[1].split(/\s+/).map(Number); } // 题目要求选择 x 颗宝石,计算乘积等于 y 的组合数 // 数据范围 n < 20,比较小,可以直接用递归暴力枚举 let count = 0; // 递归函数生成组合 function combine(startIndex, currentCount, currentProduct) { // 如果选够了x个宝石 if (currentCount === x) { if (currentProduct >= y) { count++; } return; } // 遍历所有可能的组合 for (let i = startIndex; i < n; i++) { // 剪枝优化:如果剩余的元素不足以填满 x 个,则不再继续 if (n - i < x - currentCount) { break; } combine(i + 1, currentCount + 1, currentProduct * a[i]); } } combine(0, 0, 1); console.log(count); });

【华为od机试真题Python+JS+Java+Go合集】【超值优惠】:Py/JS/Java/Go合集

【华为od机试真题Python】:Python真题题库

【华为od机试真题JavaScript】:JavaScript真题题库

【华为od机试真题Java&Go】:Java&Go真题题库

【华为od机试真题C++】:C++真题题库

【华为od机试真题C语言】:C语言真题题库

【华为od面试手撕代码题库】:面试手撕代码题库

【华为od机试面试交流群:830285880】【文章底部有二维码链接,可扫码加交流群】

华为OD机试:二本院校有机会吗?
有机会,但不大,大神除外!机考分数越高越好,所以需要提前刷题。机考通过后,如果没有收到面试邀请,也不要着急,非目标院校面试邀请发的时间比较晚。非目标院校今年有点难,机试至少要考到350分,所以需要疯狂刷题,华为OD机考是有题库的,最好在考前完所有题库题目。华为OD机试:跨专业可以参加华为OD可以,但是如果你的本科院校比较差,上岸概率不大。华为OD机试:华为OD简历被锁定机试通过,性格测试也通过,但是没人联系面试,发现简历被锁定。此时需要主动去联系HR。让他帮助你查询原因。

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

沙盒性能深度调优:从响应延迟到极速响应的实战指南

沙盒性能深度调优&#xff1a;从响应延迟到极速响应的实战指南 【免费下载链接】Sandboxie Sandboxie Plus & Classic 项目地址: https://gitcode.com/gh_mirrors/sa/Sandboxie 当你的Sandboxie-Plus配置了十几个沙盒后&#xff0c;是否发现界面响应变得像"老年…

作者头像 李华
网站建设 2026/5/29 1:24:49

终极指南:wkhtmltopdf实现PDF自动页码与交叉引用的完整教程

终极指南&#xff1a;wkhtmltopdf实现PDF自动页码与交叉引用的完整教程 【免费下载链接】wkhtmltopdf 项目地址: https://gitcode.com/gh_mirrors/wkh/wkhtmltopdf 还在为手动调整PDF页码而烦恼&#xff1f;想要快速生成专业的企业文档却不知从何入手&#xff1f;本文将…

作者头像 李华
网站建设 2026/5/26 11:04:57

TikTok 2025 出海红利:万亿市场里,理性玩家的精准掘金路径

跨境TikTok正站在历史性交汇点&#xff1a;流量红利持续释放&#xff0c;商业生态加速成熟&#xff0c;这片数字沃土已经从流量猎场演变为需要系统策略的专业竞技场。政策新局&#xff1a;开放与规范的平衡艺术平台政策呈现清晰的二元特征&#xff1a;入门门槛降低&#xff0c;…

作者头像 李华
网站建设 2026/5/28 2:43:23

Pyecharts大数据可视化终极指南:30+图表类型快速入门

Pyecharts大数据可视化终极指南&#xff1a;30图表类型快速入门 【免费下载链接】pyecharts &#x1f3a8; Python Echarts Plotting Library 项目地址: https://gitcode.com/gh_mirrors/py/pyecharts Pyecharts作为Python生态中基于百度ECharts的专业可视化库&#xff…

作者头像 李华
网站建设 2026/5/28 15:20:46

Langchain-Chatchat深度解析:如何实现文档离线处理与向量检索

Langchain-Chatchat深度解析&#xff1a;如何实现文档离线处理与向量检索 在企业知识管理日益复杂的今天&#xff0c;一个新员工入职后想查“年假怎么申请”&#xff0c;却要在十几个文件夹里翻找PDF、Word和内部Wiki——这种低效场景几乎每个组织都经历过。更棘手的是&#xf…

作者头像 李华