В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
1ПИНЧЕР1
1ПИНЧЕР1
05.12.2021 18:37 •  Информатика

Уровень c. дано натуральное число n. требуется получить и вывести на экран все возможные различные представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2 и 2 + 1 – это один и тот же разложения числа 3). решите с рекурсивной процедуры. пример: введите натуральное число: 4 1 + 1 + 1 + 1 1 + 1 + 2 1 + 3 2 + 2

Ответ:
Стешулький361953
Стешулький361953
02.10.2020 09:20
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])
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?