我有一个字母,每个字母都具有从A到E的权重,我也知道finalvalue是8。基本上,我需要找到字母的组合(+),它们的总和为finalcount,而字母数最少。 (例如:8可以是(A + E)或(A + B + C),但结果应该是A + E,因为我们只使用了2个字母)
A = 1
B = A*2+ 1
C = 4
D = 1
E = B*1 + 4
finalvalue = 8
minimum = float("inf")
dict1 = {"A": 1, "B": 3, "C": 4, "D": 1, "E": 7 }
value_chosen = 8
string1 = ""
for i, j in dict1.items():
if abs(j - value_chosen) < minimum:
final_value = j
minimum = abs(j - value_chosen)
print(final_value)
# Here i am getting value 7 , then reading that to string
x = (list(dict1.keys())[list(dict1.values()).index(final_value)])
string1 = string1 + x
print(string1)
然后尝试将其删除,并遍历其余部分以匹配finalvalue,但没有成功。。有人可以在这里帮助我如何在没有复杂算法的情况下完成此代码(因为我是初学者)