假设我们约定如下概念:一个数字n的数字分区是指由一串和值是n的正整数组成的列表,按递减的顺序排列。例如数字
5
的所有分区是[5], [4,1], [3,2], [3,1,1], [2,2,1], [2,1,1,1], [1,1,1,1,1]
,总共有7种组合。我们的任务是编写一个python3函数,输入一个正整数n,返回其所有数字分区的总个数。示例:
输入:5
,输出:7
,因为数字5
的分区有:[5], [4,1], [3,2], [3,1,1], [2,2,1], [2,1,1,1], [1,1,1,1,1]
。题目难度:中等
题目来源:codewars
def partitions(n: int) -> int:
pass
assert partitions(1) == 1
assert partitions(5) == 7
assert partitions(10) == 42
assert partitions(25) == 1958