从N个给定数中选出几个,其相加等于一个固定值

如题。如:624、68452、63541、68741、342、150、6841选出几个相加等于64507,显示出所选数字。想法是用VB或是VBS写一小段代码。因为类似工作... 如题。如:624、68452、63541、68741、342、150、6841选出几个相加等于64507,显示出所选数字。想法是用VB或是VBS写一小段代码。因为类似工作要做很多,自己凑很麻烦! 展开
匿名用户
2013-09-03
展开全部
vb,vbs不太懂,能不能用c来写的。
说下思路吧。
用回溯来做。
把所有的数据存到一个数组里面,比如a[],共有n个。
自定义一个函数。void solve(int data,int k,int b[],int m)
data,表示当前的值,k表示所到的数组的下标。
b[]来存最后的选 出来的数,m是个数。
主体是
void solve(int data,int k,int b[],int m)
{
if(data==0) //表示找到了
{
//输出b的值。
input...
return;
}
if(k==n) return;
for(i=k;i<n;i++)
if(a[i]<data) {b[m]=a[i];solve(data-a[i],i+1,b,m+1);}
}

调用是solve(64507,7,b,0);

上面是思路来着。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式