生成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