C语言 简单的数的全排列问题。。。求详解
发布网友
发布时间:2022-06-22 21:41
我来回答
共1个回答
热心网友
时间:2022-07-07 12:29
简单dfs枚举即可
#include <stdio.h>
int mark[11];
int n;
int r;
int path[11];
void dfs(int dep,int x)
{
int i;
if(dep==r)
{
for(i=0;i<dep;++i)
{
printf("%d",path[i]);
}
puts("");
return;
}
for(i=x+1;i<=n;++i)
if(!mark[i])
{
mark[i]=1;
path[dep]=i;
dfs(dep+1,i);
mark[i]=0;
}
}
void main()
{
while(scanf("%d%d",&n,&r)!=EOF)
{
int i;
for(i=1;i<=n;++i)mark[i]=0;
dfs(0,0);
}
}