Javascript 组合数字可以加在一起得到一定的总和
有一个整数数组(如3,4,5),你怎么能找到所有可以加在一起的组合呢?(例17) 例如,有四种方法可以将三个数字相加为17:Javascript 组合数字可以加在一起得到一定的总和,javascript,math,sum,Javascript,Math,Sum,有一个整数数组(如3,4,5),你怎么能找到所有可以加在一起的组合呢?(例17) 例如,有四种方法可以将三个数字相加为17: 5+5+4+3 5+4+4+4 5+3+3+3+3+3 4+4+3+3+3+3 您将如何以编程方式计算此值?例如,使用javascript。这里有一个可能的解决方案(尽管我对其效率没有任何要求): 您可以创建一个包含数字总和的数据结构。(该总和的值以及构成该总和的所有数字) 您有一个数组A和一个目标和目标 将数组排序为A 创建一个新的数组B,该数组由a初始化,数据结构
- 5+5+4+3
- 5+4+4+4
- 5+3+3+3+3+3
- 4+4+3+3+3+3
您将如何以编程方式计算此值?例如,使用javascript。这里有一个可能的解决方案(尽管我对其效率没有任何要求):
B.length*A.length
元素)注:如果A中的任何元素组合等于0,则程序将永远不会结束(如预期)。这意味着A必须具有大于0的所有元素。一般的主题称为“整数分区”。搜索它可能会找到一个你可以使用的算法 可能是带有
%
的内容?在您的示例中,不完整的组合是允许的。例如:5+4+4+4
(缺少3个)。是吗?@最后面的是,是的。并非数组中的所有数字都需要使用。只有第一个示例使用每个数字:-)是否有三个(或更多)整数的数组,最多六个(或更多)求和数?或者数字比这个大很多?整数分区的数量增长非常快。如果涉及的数字很小,这将使您的编码更容易,因为您不需要使用太多的优化。感谢您的回答,但它看起来相当复杂。我将使用罗伯特的方法:-)