1 //我的dfs入门。将1~n一次填入数组然后打印。
2 #include<stdio.h>
3 #include<string.h>
4 int v[101];
5 int a[101];
6 void dfs(int,int);
7
8 int main()
9 {
10 int n;
11 while(~scanf("%d",&n))
12 {
13 memset(v,0,sizeof v);
14 dfs(1,n);
15 }
16 }
17
18 void dfs(int step,int n)
19 {
20 if(step > n)
21 {
22 for(int i=1; i<=n; ++i)
23 if(i==1)
24 printf("%d",a[i]);
25 else
26 printf(" %d",a[i]);
27 puts("");
28 return ;
29 }
30 for(int i=1; i<=n; ++i)
31 {
32 if(!v[i])
33 {
34 v[i]=1;
35 a[step]=i;
36 dfs(step+1,n);
37 v[i]=0;
38 }
39 }
40 }