一般组合
输入n个数,从中选出m个数可欧构成集合,输出所有这样的集合
输入
4 3
1 2 3 4
输出
1 2 3
1 2 4
1 3 4
2 3 4
代码:
1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int maxn = 100; 5 6 int n,m; 7 int rcd[maxn],num[maxn],vis[maxn]; 8 9 int read_input(){ 10 11 if(scanf("%d %d",&n,&m)==EOF) 12 return 0; 13 for(int i=0;i<n;i++) 14 scanf("%d",&num[i]); 15 return 1; 16 } 17 18 void select_combination(int l,int p){ 19 if(l==m){ 20 for(int i=0;i<m;i++){ 21 printf("%d",rcd[i]); 22 if(i<m-1) 23 printf(" "); 24 } 25 printf("\n"); 26 return ; 27 } 28 for(int i=p;i<n;i++){ 29 rcd[l]=num[i]; 30 select_combination(l+1,i+1); 31 32 } 33 } 34 int main() { 35 while(read_input()){ 36 37 select_combination(0,0); 38 39 } 40 41 return 0; 42 }
posted on 2013-06-30 14:40 the unkown road 阅读(152) 评论(0) 编辑 收藏 举报