华为机试——称砝码

华为机试---称砝码  题目描述 现有一组砝码,重量互不相等,分别为m1,m2,m3…mn; 每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。   注: 称重重量包括0   方法原型:public static int fama(int n, int[] weight, int[] nums) 输入描述: 输入包含多组 阅读详情

题目描述

现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;
每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。

 

注:

称重重量包括0

 

方法原型:public static int fama(int n, int[] weight, int[] nums)


输入描述:

输入包含多组测试数据。

对于每组测试数据:

第一行:n --- 砝码数(范围[1,10])

第二行:m1 m2 m3 ... mn --- 每个砝码的重量(范围[1,2000])

第三行:x1 x2 x3 .... xn --- 每个砝码的数量(范围[1,6])

输出描述:

利用给定的砝码可以称出的不同的重量数

示例1

输入

2
1 2
2 1

输出

5
主要思路:首先将第一个砝码,从0到最大数量依次添加进set(),然后对set里面的每一个rr,分别加上剩下砝码的所有可能性,三个for循环,注意这里是set,因此不需要去重了,如果选用其他容器的话,是要考虑去重的。


def fama(n,weight,nums):
    res = set()
    for i in range(nums[0]+1):
        res.add(weight[0]*i)
    for i in range(1,n):
        temp = list(res)
        for num in range(1,nums[i]+1):
            for rr in temp:
                res.add(rr+weight[i]*num)
    return len(res)
while True:
    try:
        n = int(input())
        weight = [int(i) for i in input().split()]
        nums = [int(i) for i in input().split()]
        print(fama(n,weight,nums))
    except:
        break

【华为OD机试】真题E卷-绘图机器-计算面积(Java) 绘图机器的绘图笔初始位置在原点(0, 0),机器启动后其绘图笔按下面规则绘制直线:1)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E。2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则1 绘制直线;指令的格式为X offsetY,表示在横坐标X 沿纵坐标方向偏移,offsetY为正数表示正向偏移,为负数表示负向偏移。给定了横坐标终点值E、以及若干条绘制指令,请计算绘制的直线和横坐标轴、以及 X=E 的直线组成图形的面积。 阅读详情

相关推荐

【计算面积】

已支持(Java & JS & Python & C & C++),考察:逻辑分析

优快云 9648

编程算面积

取值范围:0 < N <= 10000, 0 <= X <= E <=20000, -10000 <= offsetY <= 10000。指令的格式为 X offsetY,表示在横坐标 X 沿纵坐标方向偏移,offsetY。给定了横坐标终点值 E、以及若干条绘制指令,请计算绘制的直线和横坐标轴、首行为两个整数 N E,表示有 N 条指令,机器运行的横坐标终点值 E。2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则。1)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值 E。

m0_49245840的博客 942

【华为OD机试真题 Python语言】9、绘图机器 | 机试真题+思路参考+代码解析

绘图机器的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。   1、尝试沿着横线坐标正向绘制直线直到给定的终点E   2.、期间可以通过指令在纵坐标轴方向进行偏移,offsetY为正数表示正向偏移,为负数表示负向偏移   给定的横坐标终点值E 以及若干条绘制指令,   请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1143

校招算法笔面试 | 华为机试-称砝码

牛客题库题解

wc529065的博客 599

【华为OD机试真题 Java】绘图机器

绘图机器的绘图笔初始位置在原点(0,0),机器启动后其绘笔按下面规则绘制直线: 1)尝试沿着横线坐标正向绘制直线,直到给定的终点值E。 2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则1 绘制直线;指令的格式为X offsetY,表示在横坐标X 沿纵坐标方向偏移,offsetY为正数表示正向偏移,为负数表示负向偏移。 给定了横坐标终点值E、以及若干条绘制指令,请计算绘制的直线和横坐标轴、以及 X=E 的直线组成图形的面积。

A_D_I_D_A_S的博客 362

华为OD机试用Python实现 -【称砝码】(2023-2-26华为OD机试人员抽到的真题)

# 称砝码 ## 题目 现有 n 种砝码,重量互不相等,分别为 $m_1$,$m_2$,$m_3$…$m_n$ ; 每种砝码对应的数量为 $x_1$,$x_2$,$x_3$...$x_n$ 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。 注: 称重重量包括 0 数据范围:每组输入数据满足 1≤$n$≤10 , 1≤$m_i​$≤2000 , 1≤$x_i$​≤10 ## 输入 对于每组测试数据:

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 3525

华为OD机试 - 称砝码 (Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

JavaPub 949

【100%通过率】华为OD机试真题 C 实现【称砝码】【2022 Q4 | 100分】

现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。

MISAYAONE的博客 1万+

华为OD机试:动态规划解决称砝码问题

动态规划是解决组合优化问题的经典算法,其核心思想是通过状态转移方程将复杂问题分解为子问题。在背包问题及其变种中,动态规划能有效计算物品组合的最优解。本文以华为OD机试高频考题'称砝码'为例,展示如何用动态规划计算不同重量组合数。该问题可转化为多重背包问题,通过维护可达重量集合逐步构建解。算法实现涉及哈希集合去重、状态转移等关键技术,在C++/Python/Java等多语言中均有高效实现。这类算法在库存管理、配置系统等工程场景有广泛应用,是开发者必备的核心算法能力。

weixin_32466193的博客 334

【华为OD机试真题 Python语言】309、称砝码 | 机试真题+思路参考+代码分析

现有一组砝码,重量互不相等,分别m1,m2,m3...mn; 每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少种不同的重量。 注:称重量包括0

KJ.JK 2373

【牛客网华为机试】HJ41 称砝码

题目 描述 现有一组砝码,重量互不相等,分别为m1,m2,m3…mn; 每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。 注: 称重重量包括0 输入描述: 输入包含多组测试数据。 对于每组测试数据: 第一行:n --- 砝码数(范围[1,10]) 第二行:m1 m2 m3 ... mn --- 每个砝码的重量(范围[1,2000]) 第三行:x1 x2 x3 .... xn --- 每个砝码的数量(范围[1,6]) 输出描

202xxx的博客 1056

【华为OD机试真题】309、称砝码 | 机试真题+思路参考+代码分析(C++、Java、Py)

题目描述 >现有一组砝码,重量互不相等,分别m1,m2,m3...mn; 每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少种不同的重量。 注:称重量包括0

KJ.JK 1354

【华为OD机试真题 C++语言】309、称砝码 | 机试真题+思路参考+代码分析

>现有一组砝码,重量互不相等,分别m1,m2,m3...mn; 每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少种不同的重量。 注:称重量包括0

KJ.JK 5022

【100%通过率】华为OD机试真题 JS 实现【称砝码】【2022 Q4 | 100分】

现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。

MISAYAONE的博客 1万+

【100%通过率】华为OD机试真题 Python 实现【称砝码】【2022 Q4 | 100分】

现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。

MISAYAONE的博客 6326

【100%通过率】华为OD机试真题 C++ 实现【称砝码】【2022 Q4 | 100分】

现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。

MISAYAONE的博客 1万+
上一篇: 2019科大讯飞大数据研究院提前批面试总结
下一篇: 华为机试——找出字符串中第一个只出现一次的字符
voidfaceless
博客等级 码龄10年 100粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值