news 2026/3/22 7:02:36

华为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/3/20 6:14:42

如何快速掌握地理空间计算:Chris Veness‘s Geodesy 终极使用指南

如何快速掌握地理空间计算&#xff1a;Chris Venesss Geodesy 终极使用指南 【免费下载链接】geodesy Libraries of geodesy functions implemented in JavaScript 项目地址: https://gitcode.com/gh_mirrors/ge/geodesy 地理空间计算在现代应用中扮演着至关重要的角色&…

作者头像 李华
网站建设 2026/3/15 15:48:58

Python图形界面开发终极指南:如何快速上手pyimgui

Python图形界面开发终极指南&#xff1a;如何快速上手pyimgui 【免费下载链接】pyimgui Cython-based Python bindings for dear imgui 项目地址: https://gitcode.com/gh_mirrors/py/pyimgui 在当今快节奏的软件开发环境中&#xff0c;Python开发者需要高效、灵活的图形…

作者头像 李华
网站建设 2026/3/18 11:07:10

CompreFace开源人脸识别:5步掌握实时检测与识别技术

CompreFace开源人脸识别&#xff1a;5步掌握实时检测与识别技术 【免费下载链接】CompreFace Leading free and open-source face recognition system 项目地址: https://gitcode.com/gh_mirrors/co/CompreFace CompreFace是领先的免费开源人脸识别系统&#xff0c;提供…

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

U-2-Net革命性深度学习架构:重塑工业智能检测新范式

在当今制造业数字化转型浪潮中&#xff0c;传统视觉检测系统面临着精度不足、适应性差和部署复杂等多重挑战。U-2-Net凭借其创新的嵌套U型网络结构&#xff0c;为工业缺陷检测领域带来了突破性解决方案&#xff0c;实现了从人工经验到智能化自动化的根本转变。 【免费下载链接】…

作者头像 李华
网站建设 2026/3/16 0:30:06

跨平台UI开发实战:AvaloniaUI图形渲染技术深度解析

跨平台UI开发实战&#xff1a;AvaloniaUI图形渲染技术深度解析 【免费下载链接】Avalonia AvaloniaUI/Avalonia: 是一个用于 .NET 平台的跨平台 UI 框架&#xff0c;支持 Windows、macOS 和 Linux。适合对 .NET 开发、跨平台开发以及想要使用现代的 UI 框架的开发者。 项目地…

作者头像 李华