原来的解决办法之一见:
python关于箱子容积的解决办法_weixin_45903952的博客-CSDN博客
经过几天的思考,决定再想出一种方法,就是凑成尽量大的数,参考了其他网友的帖子,代码如下:
import math
def combine(a, n, num):
real_size = int(math.pow(2, n))
min = abs(sum(a)-num)
min_comb = []
for i in range(real_size):
min_list = []
total = 0
for j in range(n):
if i & (1 << j):
min_list.append(a[j])
total = total+a[j]
if abs(total-num) <= min:
if abs(total-num) == min:
min_comb.append(min_list)
else:
min_comb = [min_list]
min = abs(total-num)
# print(min_comb)
return min_comb
def list_add(data_a):
data_a_sum = 0
f