遞迴_排列所有組合_我還是不會
user_3763047219
c_cpp
2 years ago
893 B
3
Indexable
#include <stdio.h> void permute(int* a, int l, int r, int n); void permute(int* a, int l, int r, int n) { if (l == n) { for (int i = 1; i <= n; i++) { printf("%d ", a[i]); } printf("\n"); } else { for (int j=l; j <= n; j++) { int temp1 = a[l]; a[l] = a[j]; a[j] = temp1; permute(a, l + 1,r, n); int temp2 = a[l]; a[l] = a[j]; a[j] = temp2; } } } #include <stdio.h> #include <stdlib.h> void swap(int* x, int* y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int n, i; scanf("%d", &n); int* a = (int*)malloc(n * sizeof(int)); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } permute(a, 0, n - 1, n); free(a); return 0; }
Editor is loading...