Количество разбиений на слагаемые Дано натуральное число N. Найдите количество его разбиений на натуральные слагаемые. Два разбиения, отличающиеся только порядком слагаемых, будем считать за одно.
Например, для N=5 существует 7 различных разбиений:
5=5
5=4+1
5=3+2
5=3+1+1
5=2+2+1
5=2+1+1+1
5=1+1+1+1+1
Входные данные
Задано единственное число N≤30.
Выходные данные
Выведите количество различных разбиений на слагаемые.
Примеры
Ввод
Вывод
5
7
пайтон
Код на Python:
from itertools import combinations_with_replacement as comb
n = int (input())
def func (a):
global n
if a == n:
return 1
else:
return 0
a = list(range(1, n+1))
count = 0
for i in range (1, n+1):
y = sum(map (func, map(sum, comb (a, i
count += y
print (count)
Объяснение: