生成1~n的排列
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
#include <cstdio>#include <string.h>using
namespace
std ;void
printf_permutation(int
n,int
*A, int
cur){ if(n==cur) { for
(int
i = 0; i < n; ++i) { printf("%d",A[i]); } printf("\n"); } else
for
(int
i = 1; i <= n; ++i) { int
ok=1; for
(int
j = 0; j < cur; ++j) if
(A[j]==i) ok=0; if(ok){ A[cur]=i; printf_permutation(n,A,cur+1); } }}int
main(){ int
n;int
A[100]; scanf("%d",&n); printf_permutation(n,A,0);} |

原文:http://www.cnblogs.com/yzhs/p/3529934.html