你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

组合的输出(N21)

2021/12/19 15:41:24

题目描述

组合就是从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);
}