递归实现:从给定的字典中抽出所有相加值SUM的全部组合
Posted 奇小东
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归实现:从给定的字典中抽出所有相加值SUM的全部组合相关的知识,希望对你有一定的参考价值。
递归的话,只需要考虑第一个数字的两种情况:选择或者不选择
class Dic: def __init__(self,id,values): self.id = id self.values = values def fun(dic,res,target,index): if target == 0: print res return if index == len(dic)-1: return #not choice this fun(dic,res,target,index+1) #choice this res += dic[index].id target -= dic[index].values fun(dic,res,target,index+1) if __name__ == ‘__main__‘: dic1 = Dic("X001",1) dic2 = Dic("X002",3) dic3 = Dic("X003", 4) dic4 = Dic("X004", 5) dic5 = Dic("X005", 9) dic6 = Dic("X00", 11) dic7 = Dic("X00", 2) dic = [dic1,dic2,dic3,dic4,dic5,dic6,dic7] res = "" target = 9 fun(dic,res,target,0)
以上是关于递归实现:从给定的字典中抽出所有相加值SUM的全部组合的主要内容,如果未能解决你的问题,请参考以下文章
二叉树:递归函数究竟什么时候需要返回值,什么时候不要返回值?