如题。。。
输入 20 个数字, 列出由这20个数字中抽出的 3 个数字 组成的所有不重复的组合
补充下:比如123之后,132,231,321之类的还由这三个数组成的排列都不需要了
出来的程序要是C语言或者C++能运行的。。。谢谢了。。。
如题。。。
输入 20 个数字, 列出由这20个数字中抽出的 3 个数字 组成的所有不重复的组合
补充下:比如123之后,132,231,321之类的还由这三个数组成的排列都不需要了
出来的程序要是C语言或者C++能运行的。。。谢谢了。。。
给你一个我以前写过的代码吧,在N个数里取M个数的所有组合方法。使用递归实现。
#include<iostream>
using namespace std;
const int N=8;
const int M=2;
void combine(int *a,int n,int m,int *b)
{
if(n<m)
return;
if(m==0)
{
for(int i=0;i<M;i++)
cout<<b[i]<<" ";
cout<<endl;
return;
}
b[m-1]=a[n-1];
combine(a,n-1,m-1,b);
combine(a,n-1,m,b);
}
void main()
{
int a[]={1,2,3,4,5,6,7,8};
int b[M];
cout<<"combine is:"<<endl;
combine(a,N,M,b);
}