题目:整数拆分
给定一个整数n,将其无序拆分成最大数为k的拆分数,(n,k不超出100) 要求:所有的拆分方案不重复。 如当n=4,k=4时,一共有5种拆分方案,拆分如下:
(1)4=1+1+1+1
(2)4=1+1+2
(3)4=1+3
(4)4=2+2
(5)4=4
输入格式:
每一行输入一组整数n,k,遇到键盘结束符^Z或文件结束符EOF时结束输入。
输出格式:
按行输出每组的拆分方案数。
输入样例:
4,4
5,4
输出样例:
5
6
方法一:递归
def dfs(n, path, ls):
for i in range(1, n + 1):
if len(path) != 0 and i < path[-1]:
continue
else:
path.append(i)
if sum(path