题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
kind=int(input()) #砝码种类数量 weight=list(map(int,(input().strip()).split(' '))) #每种砝码的重量 num=list(map(int,(input().strip()).split(' '))) #每种重量砝码的个数 result=[0] #存放能称出的重量 old=[0] #存储result处理前的值 for i in range(kind): #遍历选择每种砝码 for j in range(num[i]): #遍历第i种砝码中每个砝码 for k in range(len(result)): #对已存储能称出的重量 均加上第i种砝码中的第j个 result[k]+=weight[i] result.extend(old) #用新增第i种砝码中第j个前的result(也就是old),与新的result合并 result.append(weight[i]) #再加上新增的这个砝码本身 result = list(set(result)) #去重 old = result[:] #把新的result复制给old用于下一个砝码 #必须使用这种形式复制,如果直接=赋值,则一个变另一个也变 print(len(result))