(全排列)下面程序的功能是利用递归方法生成从1到n(n<10)的n个数的全部可能的排列(不一
定按升序输出)。例如,输入3,则应该输出(每行输出5个排列):
123 132 213 231 321
312
程序:
#include <iostream.h>
#include <iomanip.h>
int n, a[10]; // a[1],a[2],…,a[n]构成n个数的一个排列
long count = 0; // 变量count记录不同排列的个数,这里用于控制换行
void perm(int k) {
int j, p, t;
if ( 1 ) {
count++;
for (p = 1; p <= n; p++) cout << setw(1) << a[p];
cout << " ";
if ( 2 ) cout << endl;
return;
}
for (j = k; j <= n; j++) {
t = a[k];
a[k] = a[j];
a[j] = t;
3;
t = a[k];
4;
}
}
void main(void) {
int i;
cout << "Entry n:" << endl;
cin >> n;
for (i = 1; i <= n; i++) a[i] = i;
5;
}

