Как прибавлять числа из списка до определённого значения?

Я недавно начал изучать свой первый ЯП Python. Появилась такая задача: например имеется список a = [1, 2, 4, 8, 16, 32, 64] Нужно прибавить эти числа так, что бы получилось число 221. Так же нужен вывод тех чисел, что были прибавлены. В данном случае это: 64 64 64 16 8 4 1. Как это правильно реализовать? Буду благодарен за ответы.


Ответы (1 шт):

Автор решения: Zhihar

если нет других ограничений, то алгоритм такой:

  1. идем от большего значения к меньшему
  2. определяем сколько в сумму входит указанных значений
  3. вычитаем это кол-во, умноженное на значение, из суммы

вопрос в том, гарантирует ли такой способ решения задачи нахождение результата (потому что задача может сводиться к перебору)

результат не всегда (если он существует) будет оптимальным (минимальное кол-во слагаемых)

→ Ссылка