dfs竞赛题----部分和(挑战程序设计竞赛)(Python实现)
Python代码
n = int(input())
a = list(map(int,input().split()))
k = int(input())
kk = k
cur = 0
L =[]
def dfs(k, cur, L):
if k == 0:
print("Yes ", end='')
print('(', end='')
print(kk, '= ', end='')
for i in range(len(L)):
if i==0:
pass
else:print("+", end='')
print(L[i],end='')
print(')')
exit()
if cur == len(a) or k < 0:
return "No"
L.append(a[cur])
dfs(k - a[cur], cur + 1, L) ## 要a[cur] 这个元素
L.remove(L[len(L) - 1])
dfs(k, cur + 1, L) ## 不要a[cur] 这个元素
print(dfs(k, cur, L))
###结果输出
4
1 2 4 7
13
Yes (13 = 2+4+7)