Уровень c. дано натуральное число n. требуется получить и вывести на экран все возможные различные представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2 и 2 + 1 – это один и тот же разложения числа 3). решите с рекурсивной процедуры. пример: введите натуральное число: 4 1 + 1 + 1 + 1 1 + 1 + 2 1 + 3 2 + 2
import math
import sys
def step(n, L):
if n == 0:
print(L[1], end = '')
for i in L[2:]: print('+{0}'.format(i), end = '')
print()
else:
if n >= L[len(L) - 1]:
for i in range(max(1, L[len(L)-1]), n + 1):
step(n - i, L + [i])
n = int(input('Введите число, которое хотите разложить на слагаемые: '))
step(n,[0])