设有一个背包能承受重量s(s>0),又有n(n>=1)件物品,其重量列表为w=[w1,w2…wn].要从物品中挑选若干件放入背包,使得放入的物品重量之和正好是s.试设计递归函数f(w,s,n):当有解时返回True,并显示所选物品是哪些;无解时返回False。[提示:递归之处在于f(w,s,n)的真假等于f(w,s-wn,n-1or f(w,s,n-1))]:
def f(w,s,n):
if s ==0:
return True
elif (s<0) or (s>0 and n<1):
return False
elif f(w,s-w[n-1],n-1):
print (w[m-1])
return True
else:
return f(w,s,n-1)