輸入一個數輸出從一到這個數的全排列:
#include<stdio.h>
#define MAXSIZE 5
int a[MAXSIZE] = {0};
int s[MAXSIZE] = {0};
int n;
void dfs(int j);
int main()
{
scanf("%d", &n);
dfs(0);
return 0;
}
void dfs(int j)
{
int i;
if(j == n)
{
for(i = 0; i < n; i++)
printf("%d", a[i]);
printf("\n");
return ;
}
for(i = 0 ; i < n; i++)
{
if(s[i] == 0)
{
s[i] = 1;
a[j] = i + 1;
dfs(j + 1);
s[i] = 0;
}
}
}