输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来
输入描述:
每个测试输入包含2个整数,n和m
输出描述:
按每个组合的字典序排列输出,每行输出一种组合
示例1
输入
5 5
输出
1 4
2 3
5
#
n,m=[int(i) for i in input().split()]
a=[i for i in range(1,n+1)]
b=[]
def dfs(n,m,b,i):
if m==0:
for u in range(len(b)-1):
print(b[u],end=' ')
print(b[len(b)-1])
if i>m:
return
for j in range(i,n+1):
b.append(j)
dfs(n,m-j,b,j+1)
b.pop() #b.remove(j)
dfs(n,m,b,1)