提交时间:2024-07-18 13:05:19
运行 ID: 49573
def fill(lst, room): if not lst: # 物品取完 return 0 if not room: # 没有空间 return 0 not_take = fill(lst[1:], room) # 不放入当前物品 take = 0 if room >= lst[0]: # 空间够放 take = lst[0] + fill(lst[1:], room - lst[0]) # 放入当前物品 return max(not_take, take) # 返回两者中的最大值 v = int(input('请输入容器的容量:')) n = int(input('请输入物品数量:')) lst = [] for i in range(n): lst.append(int(input('请输入物品重量:'))) lst.sort(reverse=True) # 将物品按照重量降序排序,以便优先考虑放入重的物品 print(fill(lst, v))