Уровень C. Дано натуральное число N. Требуется получить и вывести на экран все возможные различные способы представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2 и 2 + 1 – это один и тот же способ разложения ч...

Уровень C. Дано натуральное число N. Требуется получить и вывести на экран все возможные различные способы представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2 и 2 + 1 – это один и тот же способ разложения числа 3). Решите задачу с помощью рекурсивной процедуры. Пример: Введите натуральное число: 4 1 + 1 + 1 + 1 1 + 1 + 2 1 + 3 2 + 2
Гость
Ответ(ы) на вопрос:
Гость
Python 3.4 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])
Не нашли ответ?
Ответить на вопрос
Похожие вопросы