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有了比較深刻的認識!!!!!!