Предмет: Информатика,
автор: kunbagisssss
Разбиение это способ представить число n
как сумму натуральных чисел записанных по неубыванию. Например: 6=1+2+3
или 6=1+1+2+2
(заметьте что числа записаны по неубыванию). Но таких разбиений много и поэтому вам интересны только необычные разбиения.
Разбиение называется необычным, если никакие два числа в нем не равны между собой и не отличаются на единицу. Например: 9=1+3+5
это необычное разбиение, но 4=2+2
или 3=1+2
не являются необычными. Ваша задача состоит в том чтобы для заданного числа n
найти все возможные необычные разбиения.
Входные данные
В единственной я входных данных вам дано число n
(1≤n≤80
).
Выходные данные
Выведите все необычные разбиения числа n
. Сами разбиения можно выводить в любом порядке.
xktrimall:
прошу вас. Указывайте язык. это на пайтоне надо сделать? или на с++? или еще где?
Ответы
Автор ответа:
0
на python можно сделать так
import random
num = 10
n = 0
l = []
while n != num:
r = random.randint(1, num-n)
n += r
if n > num:
n -= r
continue
l.append(r)
print(" + ".join(map(str, l)), '=', num)
в num запихнуть число которое надо разложить.
Приложения:

Похожие вопросы
Предмет: Математика,
автор: illiazabrodin
Предмет: Английский язык,
автор: zrozp46
Предмет: Английский язык,
автор: KPAMTTyC2033
Предмет: Геометрия,
автор: Yahoo76
Предмет: Английский язык,
автор: dashashipko11