求整数序列中和为给定值的所有子序列

wuchangjian2021-11-04 15:26:17编程学习

一、问题

给定一个数t,以及n个整数,在这n个数中找到相加和为t的所有组合,例如t=4,n=6,这6个数为[4,3,2,2,1,1],这样输出就有4个不同的组合相加为4: 4,3+1,2+2,and 2+1+1。

二、解题思路

分支遍历法。 

三、Python代码

import random
    
def sum_list(solver, n, now_sum):
    if n >= len(sum_l) or now_sum>sum_num:
        return
    if now_sum == sum_num:
        solvers.append(solver)
        return                     
    sum_list(solver+[sum_l[n]], n+1, now_sum+sum_l[n])
    sum_list(solver, n+1, now_sum)

if __name__ == '__main__':
    sum_l = random.sample(range(1,15), 8)
    sum_num = 19
    solvers=[]
    sum_list([], 0, 0)
    print(solvers)

相关文章

Redis搭建主从复制和哨兵模式

主从复制结构 目录 一、搭建环境  二、设置主从复制,配置192...

写题解:借教室QwQ

xdm来康康这個题吧 题目描述:在大学期间,经常需要...

湖南正式启动2022年度“爱心改变命运”慈善助学活动

湖南正式启动2022年度“爱心改变命运”慈善助学活动

2022-08-17 14:47:49 8月17日,2022年度湖南省...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。