从n个数里选r个数组合
#include<stdio.h>
#include<string.h>
int n,r;
int a[11];
int vis[11];
void dfs(int step)
{
if(step==r+1)
{
for(int i=1;i<=r;i++)
printf("%d",a[i]);
printf("\n");
return;
}
for(int i=n;i>0;i--)
{
if(vis[i]==0 && i<a[step-1])
{
vis[i]=1;
a[step]=i;
dfs(step+1);
vis[i]=0;
}
}
}
int main()
{
a[0]=1000;
scanf("%d %d",&n,&r);
memset(vis,0,sizeof(vis));
dfs(1);
return 0;
}