当前位置:编程学习 > Matlab >>

如何编写程序(matlab或C++)n个数的组合,使之相加的和不超过某个值(假设是s)。

追问:
付多少啊?
这n个数我是初始为0,但是有几个(n)是不知道的
要编一个通用的
假设这些数是a(1),a(2)...a(n)
要求的就是a(1),a(2),...,a(n)的组合
使它们的和不超过s
main()
{
     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我能理解。。。
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,