主题:[讨论]求一个满足要求的组合问题
panchengsi
[专家分:0] 发布于 2008-05-31 17:22:00
在下列一组数中
{45,411,98,157,62,98,225,14}要求求出它们中的一个,两个,三个,到最大组合满足条件的算法。条件385<sun<498//sum为他们中的一个或两个或三个…的和
只要他们中有满足条件的就输出,不管是一个数,还是两个…的组合
回复列表 (共2个回复)
沙发
sjhlovejava [专家分:1690] 发布于 2008-06-01 11:34:00
给你个思路吧
先取单个循环,把符合条件的数找出来,第一次应该只有411符合;
再取两个循环,把符合条件的数找出来,如:45+411;411+62;411+14...
再取三个循环,把符合条件的数找出来,如:45+98+225;45+157+225...
依次类推,而由最小的数组合满足条件的是:14+45+62+98+98+157,所以取完六个循环就可以结束了,
我这是比较笨的思路拉,不过目前能想到的思路也就这了
板凳
sjhlovejava [专家分:1690] 发布于 2008-06-01 11:40:00
对了,可以先排下序,如:{411,225,157,98,98,62,45,14}
这样当取单个循环时,取到225,判断225不符合条件,后面的几个就可以break了
同理,取两个循环时,411+14;411+45;411+62符合,而411+98不符合,break掉
以此类推
我来回复