1 void cp(int n, int*A, int cur) {//n表示总共要排几个数,A来记录已经排好的数,cur表示正在排的是第几个数 2 if (cur == n) {//说明n-1已经排好 输出 3 for (int i = 0; i < n; i++)cout << A[i]; 4 cout << endl; 5 } 6 else for (int i = 1; i <= n; i++) { 7 int ok = 1; 8 for (int j = 0; j < cur; j++)//如果排列中已经有这个数 跳过 9 if (A[j] == i)ok = 0; 10 if (ok) { 11 A[cur] = i; 12 cp(n, A, cur + 1); 13 } 14 } 15 }
主要是对int *A有了比较深刻的认识!!!!!!
