您的位置:首页 > 其它

写正确函数需要注意的地方:输入两个整数n和m,从数列1,2,3,...n中随意取几个数,使其和为m,列出所有可能组合

2012-08-21 13:22 417 查看
void getCombine(int* aux, int num, int indx, int val)
{
if(num<indx)//输入参数检测。
return;

if(indx==val)
{
aux[indx]=1;//将最后一个数添加进去
for(int i=1;i<=indx;i++)//遍历所有之前的数,输出
{
if(aux[i]==1)
cout<<i<<' ';
}
cout<<endl;
}
else if(indx>val)
return;
else
{
aux[indx]=0;
getCombine(aux, num, indx+1, val);
aux[indx]=1;
getCombine(aux, num, indx+1, val-indx);
}
}

void findCombine(int num,int val)
{
int * aux=new int[num+1];//辅助数组标记是否取值。
getCombine(aux,num,1,val);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐