发布网友 发布时间:2024-05-01 22:29
共2个回答
热心网友 时间:2024-12-14 14:24
算法 列出这5个数的所有组合,找出组合的和减268的绝对值最小的组合,
完整的Python程序如下
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)
a=[110,120,130,140,150]
num=268
combine(a,len(a),num)
源代码(注意源代码的缩进)
热心网友 时间:2024-12-14 14:24
import itertools