2020-12-31

设有一个背包能承受重量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)

你可能感兴趣的:(python)