当前位置: 首页 > news >正文

华为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。让他帮助你查询原因。

http://www.cnnetsun.cn/news/153143.html

相关文章:

  • Epic Games免费游戏自动获取工具:零基础到精通的完整实践指南
  • 5个实战技巧:用HunyuanVideo轻松制作艺术风格视频
  • 5分钟搞定Linux调度器:从CPU争抢到公平分配的实战指南
  • Atmosphere-NX固件兼容适配全攻略:从系统更新到稳定运行
  • Magicodes.IE终极数据导出方案:10分钟快速上手
  • 5分钟掌握Material-intro:打造专业级应用引导页体验
  • Booster终极指南:10分钟完成Android应用性能优化配置
  • Pipecat框架:重新定义多模态人机交互的技术革命
  • WinUI TabView控件终极指南:构建高效标签式界面的完整教程
  • 终极解决方案:彻底修复Tasmota中XPT2046触摸屏漂移与无响应问题
  • 5分钟诊断Linux调度瓶颈:运维必会的性能调优技巧
  • AI语音识别模型轻量化部署:SenseVoice量化工具实战指南
  • FaceFusion在航空公司品牌传播中的空乘形象更新
  • 17款专业EA交易源码:量化投资的终极武器库
  • Nextcloud AIO终极部署指南:5分钟搭建企业级私有云协作平台
  • 智能体技术革命:当AI学会“动手操作“的数字世界
  • 安全测试集合!2025 最新 BurpSuite 安装教程,图文详解来了
  • Langchain-Chatchat是否适合中小型企业?成本与收益分析
  • 5大理由告诉你为什么OpenEBS是Kubernetes存储的最佳选择
  • 安全测试工具安装难?2025 最新 BurpSuite 教程,图文详解零基础也能会
  • 零基础搭建企业级文档分享平台:Papermark本地部署实战
  • SeedVR视频修复工具:AI智能增强让模糊影像重获新生
  • Bonjourr:重新定义浏览器主页的极简主义体验
  • 从零打造你的专属智能手表:开源电子墨水屏穿戴设备完全指南
  • 从零开始配置shadPS4模拟器:在个人电脑上畅玩PS4游戏的完整指南
  • Unity XR开发实战指南:快速构建沉浸式交互体验
  • SOES开源EtherCAT从站开发终极指南:从理论到工业实战
  • Spring Boot全局日期格式配置方法
  • REAL-Video-Enhancer终极教程:5分钟掌握免费视频增强神器
  • Win11 VMware蓝屏修复终极方案:告别虚拟机崩溃困扰