#include<stdio.h>
int a[10];
int visited[10]={0};
void dfs(int k,int n)
{
if(k>=n)
{
//得到了一个排列输出一个解
print(n);
}
else
{
//将选择一个数放在下标为K处;
for(int i=1;i<=n;i++)
{
if(visited[i]==0)
{
//选中了i数;
a[k]=i;
visited[i]=1;
dfs(k+1,n);
visited[i]=0;//还原
}
}
}
}
void print(int n)
{
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
}
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
dfs(0,n);
}
输出全排列
最新推荐文章于 2023-04-23 01:49:33 发布