首页 > 代码库 > 一般组合

一般组合

输入n个数,从中选出m个数可构成集合,输出所有这样的集合

输入

4 3

1 2 3 4

输出

1 2 3

1 2 4

1 3 4

2 3 4

#include<cstdio>#include<cstring>using namespace std;const int maxn = 100;int n,m;int rcd[maxn],num[maxn],vis[maxn];int read_input(){   if(scanf("%d %d",&n,&m)==EOF)        return 0;    for(int i=0;i<n;i++)        scanf("%d",&num[i]);    return 1;}void select_combination(int l,int p){    if(l==m){        for(int i=0;i<m;i++){            printf("%d",rcd[i]);        if(i<m-1)            printf(" ");        }        printf("\n");        return ;    }    for(int i=p;i<n;i++){        rcd[l]=num[i];        select_combination(l+1,i+1);    }}int main() {    while(read_input()){        select_combination(0,0);    }    return 0;}

  

一般组合