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 }