递归和排列
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 32 33 34 | #include <stdio.h> #define SIZE 10 int print_permulation(int n, int A[], int cur) { int i, j; int ok; if (cur==n) { for (i=0; i<n; i++) printf("%d ", A[i]); printf("n"); } else { for (i=1; i<=n; i++) { ok = 1; for (j=0; j<cur; j++) if (A[j]==i) ok = 0; if (ok) { A[j] = i; print_permulation(n, A, cur+1); } } } } int main(int argc, char *argv[]) { int A[SIZE]; A[0]=1; A[1]=2; A[2]=3; print_permulation(3, A, 0); return 0; } |