题目描述
组合就是从n个元素中抽出r个元素(r<=n).
n=5,r=2时,组合为:
1 2; 1 3; 1 4; 1 5; 2 3; 2 4; 2 5; 3 4; 3 5; 4 5;
输入
两个自然数n,r(1<n<10,1<=r<=n)
输出
所有的组合,每个组全占一行,每行的元素由小到大顺序排列
样例输入
5 3
样例输出
1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5
#include<stdio.h>
int a[100];
int n,r;
void comb(int k,int st)
{ int i;
if(k>r) {
for(i=1;i<=r;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return ;
}
for(i=st;i<=n;i++)
{
a[k]=i;
comb(k+1,i+1);
}
}
int main()
{
scanf("%d%d",&n,&r);
comb(1,1);
}