#include<stdio.h>
int n,r,flag;//flag是递归一次结束标志,代表另起一行
combination(int s,int j)
{
int i,k;
for(i=s;i<=n-j+1;i++)//i为数字,j为排序号
{
if(flag)
for(k=0;k<k-j;k++)
printf(" ");
printf("%3d",i);
flag=0;
if(j>1)//递归结束,换行
combination(i+1,j-1);
else
{
putchar('\n');
flag=1;
}
}
return 0;
}
main()
{
int s;
scanf("%d%d",&n,&r);
flag=1;
combination(1,r);
}
输入5,3
输出