按字典序依次打印只由1~n组成的n位数

 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 }
原文地址:https://www.cnblogs.com/qq188380780/p/6409340.html