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