Задать вопрос
17 июня, 21:50

Уровень C. Дано натуральное число N. Требуется получить и вывести на экран все возможные различные способы представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2 и 2 + 1 - это один и тот же способ разложения числа 3). Решите задачу с помощью рекурсивной процедуры.

Пример:

Введите натуральное число:

4

1 + 1 + 1 + 1

1 + 1 + 2

1 + 3

2 + 2

+3
Ответы (1)
  1. 18 июня, 00:38
    0
    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])
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Уровень C. Дано натуральное число N. Требуется получить и вывести на экран все возможные различные способы представления этого числа в виде ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы