题解 | #称砝码#

称砝码

https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c

import sys

#for line in sys.stdin:
#    a = line.split()
#    print(int(a[0]) + int(a[1]))
n = int(input())
listm = list(input().split())
#此处定义砝码的数量
listnumber = list(input().split())
listnumber = list(map(lambda x : int(x),listnumber))

#此处定义砝码的质量
listm = list(map(lambda x : int(x),listm))


#定义重量列表
wight_list = [0]


# 遍历各种砝码的重量
for i in range(n):
    # 放入砝码为listm[i]重量为j个后,增加的重量
    tmp = [ ]
#  质量对应的数量进行遍历添加,添加0个,或者一个,或者到listnumber[i]个
    for j in range(listnumber[i]+1):
	    #添加j个,就意味着增加j*listm[i]的质量,比如j=0,不增加,j=1那就需要增加1个listm[i]质量的砝码
		#因为总共有J个,最多可以增加0,1,2...listnumber[i]+1种
        tmp.append(listm[i]*j)
    tmp2 =[ ]
    for a in tmp:
        for b in wight_list:
            tmp2.append(a+b)
    wight_list = list(set(tmp2))

#打印重量种类
print(len(wight_list))

全部评论
花了一下午时间😂
点赞 回复 分享
发布于 2023-02-11 17:01 广东

相关推荐

点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务