#include <stdio.h>int n;int visited[20];int workarr[20];void DFS(int l){ int i; if (l == n) { for (i=0; i<l; i++) printf("%d ", workarr[i]+1); printf("\n"); return; } for (i=0; i<n; i++) if (!visited[i]) { visited[i] = 1; workarr[l] = i; DFS(l+1); visited[i] = 0; } }int main(){ int i; while (scanf("%d", &n) != EOF) { for (i=0; i<n; i++) visited[i] = 0; DFS(0); } return 0;}

评论