[求助]有关找差额的算法求助
自然数集合C中有N个数,求C中数之和等于给定数S的组合的个数(组合不定长)。现实运用:
如有100笔销售往来(含退货,即负数),现对帐发现少了1500元,求这少的1500是由哪几笔组成的。
大致思路如下:
将100笔金额以升序排序,从小加到大,如加到第X笔数额大于1500时,可知1500最多由X-1笔数额组成,最少为1笔。
尝试用叠代递归函数加总额判断的方式来做,算法想了三天,无果。现苦逼中,请大神给个范例,要有效率的算法哈,如果总笔数超1000,单个组合判断有点浪费电,1000*1000*变动组合长度????
谢谢大神!