Разбиение это способ представить число 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:
прошу вас. Указывайте язык. это на пайтоне надо сделать? или на с++? или еще где?
Ответы на вопрос
Ответил 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 запихнуть число которое надо разложить.
Приложения:

Новые вопросы
Алгебра,
1 год назад
Геометрия,
1 год назад
Математика,
1 год назад
Русский язык,
1 год назад
Английский язык,
6 лет назад
Математика,
6 лет назад