選擇從列表中最大元素我建立從其求和到一個給定的輸入值的列表中選擇最大元素的程序使用輸入值的Python
load_data = [1, 2, 3, 4, 10, 20]
例如用戶輸入30
選擇20 and 10
或用戶輸入35
選擇20, 10, 4 and 1
因爲它們是可能的最大元素總結到30
或35
代碼
def process(m):
print m
def selection():
aux = range(len(load_data))
global value # <- value is the input
while aux and value > 0:
posit = max(aux) >= value
index = aux[posit]
elem = load_data[index]
value = value - posit # <- subtract max value from input and repeat process
del aux[posit]
process(elem)
輸出始終打印
2
3
1
4
10
20
這並不是一件容易的事情,我不知道你瞭解它的複雜性(編程而言)。我想不出一種不使用遞歸的方法.. –
您可能會發現以下SO問題有幫助:http://stackoverflow.com/questions/3420937/algorithm-to-find-which-number-in- a-list-sum-up-to-certain-number – dodell
不簡單。線性規劃可能提供一個解決方案 –