Я пытаюсь добавлять элемент в список каждый раз, когда он используется, но, поскольку существует несколько экземпляров списка, я не знаю, как добавить нужные элементы в окончательный список.
Это программа, которая возвращает минимальное количество монет, необходимое для внесения изменений, и список монет, необходимых для этого решения.Например, если вы хотите найти минимальное количество монет, необходимое для получения 48 центов в американской системе монет, функция вернет [6, [1, 10, 25]].
У меня был плансоздать пустой список, который бы добавлял к нему монету всякий раз, когда функция будет пытаться найти минимально возможное количество монет.Я знаю, как найти минимальное количество монет, которое требуется, но я пытаюсь найти способ добавить монеты в список.
Сейчас этот код просто находит минимальное количество монет, но мне нужно добавить его.какую бы монету он не использовал для этого решения в списке результатов и в конечном итоге вернуть решение с монетами.
def giveChange(amount, coins):
''' amount = non-negative integer
coins = list of coin values with 1 always being in the list
returns a list whose 1st item is the minimun number of coins and
whose 2nd item is a list of coins in that optimal solution '''
if amount > 0 and coins != []:
result = []
if coins == []:
return 0
else:
result.append(coins[-1])
useIt = amount // coins[-1] + giveChange(amount % coins[-1], coins[:-1])
loseIt = giveChange(amount, coins[:-1])
return min(useIt, loseIt)
else:
if amount == 0:
return 0
else:
return float("inf")
В настоящее время этот код создает экземпляр «результата» и добавляет к нему монету.Проблема в том, что он не продолжает добавлять монеты в этот список;он продолжает создавать новые списки «результатов» и добавлять к ним следующую монету.