第一道用搜索码的、得纪念一下
#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <string> #include <algorithm> using namespace std; int n; int visit[10], a[10]; void dfs(int pos) { if (pos == n) { //递归出口 for (int i = 0; i<n; i++) cout << a[i]; cout << endl; return ; } for (int i = 1; i<=n; i++) { if (!visit[i]) { visit[i] = 1; //标记已经访问过 a[pos] = i; dfs(pos+1); //搜索下一个数 visit[i] = 0; //回溯 } } } int main() { while (cin >> n) { memset(visit, 0, sizeof(visit)); dfs(0); } return 0 ; }