華為機試 稱砝碼

2021-08-21 07:25:24 字數 1125 閱讀 7762

現有一組砝碼,重量互不相等,分別為m1,m2,m3…mn;

每種砝碼對應的數量為x1,x2,x3...xn。現在要用這些砝碼去稱物體的重量,問能稱出多少中不同的重量。

注:稱重重量包括0

方法原型:public

static

intfama(

intn, 

int weight, 

int nums)

輸入包含多組測試資料。

對於每組測試資料:

第一行:n --- 砝碼數(範圍[1,10])

第二行:m1 m2 m3 ... mn --- 每個砝碼的重量(範圍[1,2000])

第三行:x1 x2 x3 .... xn --- 每個砝碼的數量(範圍[1,6])

利用給定的砝碼可以稱出的不同的重量數 

示例1

2

1 22 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

華為機試 稱砝碼 矩陣乘法

1.稱砝碼 題目描述 現有一組砝碼,重量互不相等,分別為m1,m2,m3 mn 每種砝碼對應的數量為x1,x2,x3.xn。現在要用這些砝碼去稱物體的重量,問能稱出多少中不同的重量。注 稱重重量包括0 方法原型 public static intfama intn,int weight,int nu...

華為OJ 稱砝碼

題目描述 現有一組砝碼,重量互不相等,分別為m1,m2,m3 mn 每種砝碼對應的數量為x1,x2,x3 xn。現在要用這些砝碼去稱物體的重量,問能稱出多少中不同的重量。注 稱重重量包括0 方法原型 public static int fama int n,int weight,int nums 輸...

華為OJ稱砝碼

問題描述 現有一組砝碼,重量互不相等,分別為m1 m2 mn 他們可取的最大數量分別為x1 x2 xn。現在要用這些砝碼去稱物體的重量,問能稱出多少中不同的重量。注 稱重重量包括0 要對輸入資料進行校驗 方法原型 public static intfama intn,int weight,int n...