一、问题
给定和,求所有可行解。
二、解题思路
分支遍历法。
三、Python代码
def dfs(l=[], k=0, s=0):
if s > y:
return
if s == y:
solvers.append(l)
return
for i in range(k,len(x)):
dfs(l+[i], i+1, s+x[i])
if __name__ == '__main__':
x = [4, 9, 11, 13, 7, 6, 8, 12]
y = 20
solvers=[]
dfs()
print(solvers)