Предмет: Информатика,
автор: IAmHightIq
На вход программе подаётся число 0 < n ≤ 100
Напишите программу на Python, которая будет выводить все возможные варианты составления числа n из чисел 1;2;3;4....n
Числа могут повторяться
К примеру:
Ввод
3
Вывод
1 + 1 + 1 = 3
1 + 2 = 3
3 = 3
BnanOs:
50 балов мало
Ответы
Автор ответа:
1
Ответ:
from itertools import combinations_with_replacement
def sumt(q, *tr):
result = []
for i in range(1, q + 1):
for j in combinations_with_replacement(list(tr), i):
if sum(list(j)) == q:
result.append(j)
return result[::-1]
n = int(input())
t = sumt(n, *range(1, n + 1))
for num in t:
a = list(map(str, num))
if len(a) == 1:
print(f'{"".join(a)} = {n}')
else:
a = ' + '.join(a)
print(f'{a} = {n}')
Похожие вопросы
Предмет: Окружающий мир,
автор: ЕррорСанс
Предмет: Русский язык,
автор: српврпвррвв
Предмет: Другие предметы,
автор: иришка218
Предмет: Математика,
автор: Ttwyquisjx
Предмет: Английский язык,
автор: dashastr256