Python经典题:找出1-9中有那些组合相加等于一个特定值,例如说20,一个列表中元素进行组合,等于一个目标值【杭州多测师_王sir】【杭州多测师】
找出1-9中有那些组合相加等于一个特定值,例如说20 num = [1,2,3,4,5,6,7,8,9] def count(num,n): # num = list(sorted(filter(lambda x: x <= n, num))) # print(num) combinations_impl(num, n, []) def combinations_impl(num, n, ls): if n == 0: print(ls) #遍历列表中的元素如果通过目标值n减掉列表中所有元素等于0、那就满足要求、打印结果 return for i in range(0, len(num)): #i取的是0到num列表长度-1 if num[i] <=n: #当列表当中遍历出来的元素小于传进来的目标值n ls.append(num[i]) #就把列表当中遍历出来的元素追加到ls列表里面 combinations_impl(num[i + 1:], n - num[i], ls) #[5,6,7,8,9],15-5=10,[1,2,3,4,5] ls.pop() #先添加到列表里面判断n是否等于0、如果不等于0、说明列表相加不等于目标值、则移除、继续下一次判断 else: break #不满足要求的话直接退出 result = count(num, 20)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)