栈的应用:n个数的全排列
Description
给你一个数n,请你列出1,2,3,4...n-1,n的全排列。
Input
输入一个数n
Ouput
输出相应的全排列
Sample Input
3
Sample Output
Case 1:
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
代码 :
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,id=1;
char arr1[100];
while (cin >> n) {
for (int i = 0; i < n; i++) {
arr1[i] = i +'A';//这个是对字母的全排列,数字更简单。。。。
}
cout << "Case " << id++ << ":" << endl;
do
{
for (int i = 0; i < n; i++) {
if (i == 0) {
cout << "[" << arr1[i];
}
else if (i == n - 1) {
cout << ", " << arr1[i] << "]" << '\n';
}
else {
cout << ", " << arr1[i];
}
}
} while (next_permutation(arr1, arr1 + n));
}
return 0;
}
附上STL的全排列的链接