HDU 1716. 全排列函数大法
原题链接
简单
作者:
史一帆
,
2021-04-16 18:23:35
,
所有人可见
,
阅读 218
【用法总结】C++ STL中 next_permutation函数的用法
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 10;
int q[N];
int flag; // 判断是否是第一个样例。
int main()
{
while (cin >> q[1] >> q[2] >> q[3] >> q[4])
{
if (q[1] == 0 && q[2] == 0 && q[3] == 0 && q[4] == 0) break;
sort(q + 1, q + 5);
if (flag) cout << endl;
flag = 1;
int first = 1, tmp; // first判断是否是输出的一个行的第一个
do
{
if (q[1] == 0) continue;
if (first)
{
cout << q[1] << q[2] << q[3] << q[4];
first = 0;
} // 拿tmp判断第一个数是否改变,如果没有改变,则不换行
else if (tmp == q[1])
{
cout << ' ' << q[1] << q[2] << q[3] << q[4];
}
else
{
cout << endl << q[1] << q[2] << q[3] << q[4];
}
tmp = q[1];
}while (next_permutation(q + 1, q + 5));
cout << endl;
}
return 0;
}