我要做的是找到一种方法,让我的代码返回从一个添加到变量的列表中的所有值的组合,以列表的形式返回每个答案。例如
target_number = 8
usingnumbers = [1, 2, 4, 8]
returns:
[8]
[4, 4]
[4, 2, 2]
[4, 2, 1, 1]
[4, 1, 1, 1, 1]
[2, 2, 1, 1, 1, 1]
[2, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
等等。我希望重复的值被丢弃,例如[4,2,2],[2,4,2],[2,2,4]在技术上都是有效的,但我只想显示其中一个。理想情况下,我希望代码也返回每个数字在每个列表中出现的次数,但我相信我自己可以做到这一点。在
在psuedocode中:
没那么难。在
不打算为您编写代码,但主要思想是:
函数
F(n, (k1, k2, .. km))
-返回一组数字列表:{(a11, ... a1i), (a21, ... a2i), ... (aj1, ... aji )}
有反复关系:
操作
a (+) b
是“将a
附加到b
的每一项”。在有一些小案件,但这取决于你。在
这是问题的一个完整的解决方案,整个函数是一个伪装的大生成器,第一个
for
循环使用最小的硬币,在第二个循环中,最小的硬币被丢弃,下一个大的硬币将成为我们递归函数的基础。如果列表中的硬币数量大于当前列表中的总和,则将其返回给当前列表。在相关问题 更多 >
编程相关推荐