注册 登录
编程论坛 C++教室

求一算法。有大侠能帮一下吗。

jacktain 发布于 2013-06-03 10:16, 572 次点击
问题描述:
随机给定N个数字(比如a1,a2....aN),然后给定一个数值(比如S).
然后从N个数字里面找出M个数字(0<M<=N)组成一个组合,使得这个组合里数字之和sum满足:
条件1:sum>=S
条件2:这个sum是所有满足条件1里  sum-S的值最小的

给定的N个数字只能是负整数,0,正整数。


有大侠能帮写一算法吗,穷举就别了啊,感觉穷举在N较大时很无力啊。

3 回复
#2
lzj125302013-06-05 22:30
先对数列排序如何,或者给定数列是有序的。这样的话好算一点

[ 本帖最后由 lzj12530 于 2013-6-5 22:36 编辑 ]
#3
子楠2013-06-06 12:58
从M个选出N个数,来个N重循环就行了,我目前的水平只能想到这了,楼主看吧
#4
木容木水2013-06-06 23:13
待大神
1