Вопрос по информатике:
Уровень C. Дано натуральное число N. Требуется получить и вывести на экран все возможные различные способы представления этого числа в виде суммы натуральных чисел (то есть, 1 + 2 и 2 + 1 – это один и тот же способ разложения числа 3). Решите задачу с помощью рекурсивной процедуры.
Пример:
Введите натуральное число:
4
1 + 1 + 1 + 1
1 + 1 + 2
1 + 3
2 + 2
- 05.10.2017 16:34
- Информатика
- remove_red_eye 17304
- thumb_up 49
Ответы и объяснения 1
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])
- 06.10.2017 20:26
- thumb_up 13
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.