有一個整數數組(例如3,4,5),如何找到所有可以添加到給定總和的組合? (如:17)可以添加組合數字以給出一定的總和
對於例如將有四種方式的三個數字可以添加多達17:
- 5 + 5 + 4 + 3
- 5 + 4 + 4 + 4
- 5 + 3 + 3 + 3 + 3
- 4 + 4 + 3 + 3 + 3
你會如何編程計算這個?例如。使用javascript。
有一個整數數組(例如3,4,5),如何找到所有可以添加到給定總和的組合? (如:17)可以添加組合數字以給出一定的總和
對於例如將有四種方式的三個數字可以添加多達17:
你會如何編程計算這個?例如。使用javascript。
一般主題稱爲「整數分區」。搜索可能會出現一個您可以使用的算法。
這裏是一個可能的解決方案(我做盡管其效率不要求):
B.length*A.length
元件)注意:如果A中元素的任意組合等於0,那麼程序永遠不會結束(如預期的那樣)。這意味着A必須具有大於0的所有元素。
感謝您的回答,但看起來相當複雜。我會用Robert的方法:-) – Deni
也許用'%'[modulo](http://stackoverflow.com/questions/8900652/what-does-do-in-javascript)? – loveNoHate
在你的例子中,不完整的組合是允許的。例如:'5 + 4 + 4 + 4'(缺少3)。這樣對嗎? – hindmost
@ behindmost是的,它是正確的。並非數組中的所有數字都需要使用。只有第一個示例使用每個數字:-) – Deni