如何编写程序(matlab或C++)n个数的组合,使之相加的和不超过某个值(假设是s)。
追问:付多少啊?这n个数我是初始为0,但是有几个(n)是不知道的 要编一个通用的 假设这些数是a(1),a(2)...a(n) 要求的就是a(1),a(2),...,a(n)的组合 使它们的和不超过smain() { int i;; int a[] ; int sum; i=0;sum=0;a[0]=0 while(sum<=s) { sum=sum+a[i]; ++i; scanf("d%",&a[i]) } sum=sum-a[--i]; } 这个是C语言编的,你输入一个数,就累加,一直累加到刚刚不超过s的大小就停止累加不对,我要求的是把所有符合条件(和不大于s)的排列情况列出来,不是判断你所输入的几个a(i)如果大于s就停止~有思路,但太复杂了,我写不完。。。。实在抱歉,,,,T.T我能理解。。。