|
本帖最后由 Rainyboy 于 2011-1-10 20:25 编辑
回复 1 # cc2005726 的帖子
贴一个不完整的吧,算是抛砖引玉……
- def main():
- SouceData =[2,3,4,1,1,5,0];
- SouceData.sort();
- MatchData = [0];
- Search(5,SouceData,MatchData);
-
- def Search(tag,SD,MD,st=0):
- if tag - SD[st] == 0:
- print MD[1:];
- return True;
- elif tag - SD[st] > 0:
- if st == len(SD):
- return False;
- else:
- for i in range(1,len(SD)-st):
- MD.append(SD[st+i]);
- re = Search(tag-SD[st],SD,MD,st+i)
- MD.pop();
- if re == True:
- continue;
- else: #re == False
- return True;
- return True;
- else:
- return False;
- if __name__ == '__main__':
- main();
复制代码 结果中存在一些重复的模式……
[1, 1, 3]
[1, 4]
[1, 4]
[2, 3]
[5]
|
评分
-
1
查看全部评分
-
|