#include<stdio.h>
#define N 5
//N个数
int color[N]={0};
int num[N]={1,2,3,4,5};
int temp[N]={0};
int sum=0;
void dfs(int depth)
{
int i;
if(depth>=N)
{
for(i=0;i<N;i++)
{
printf("%d ",temp[i]);
}
sum++;
printf("\n");
}
else
{
for(i=0;i<N;i++)
{
if(color[i]==1)
continue;
color[i]=1;
temp[depth]=num[i];
dfs(depth+1);
color[i]=0;
}
}
}
int main(void)
{
dfs(0);
printf("%d",sum);
return 1;
}
输出为一组数的全排列以及全排列的个数。