Description
给定n个数 a[0] , a[1] ........ a[n-1], 输出其全排列。
Input
第一行输入一个数n,(n<7)
接下来一行输入n个数。
Output
按字典序从小到大输出全排列
Sample Input
3 1 2 3 3 1 2 2
Sample Output
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 1 2 2 2 1 2 2 2 1
HINT
如果没有排序 输入122和221是不一样的结果
prev_permutation(a,a+n)求上一个排列数
next_permutation(a,a+n)求下一个排列数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[15];
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);//缺少这句 一直wa
do
{
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",a[0]);
else
printf(" %d",a[i]);
}
printf("\n");
}
while (next_permutation(a,a+n));
}
return 0;
}
牛客 老子的全排列呢
链接:https://www.nowcoder.net/acm/contest/76/H
来源:牛客网
老李见和尚赢了自己的酒,但是自己还舍不得,所以就耍起了赖皮,对和尚说,光武不行,再来点文的,你给我说出来1-8的全排序,我就让你喝,这次绝不耍你,你能帮帮和尚么?
输入描述:
无
输出描述:
1~8的全排列,按照全排列的顺序输出,每行结尾无空格。
链接:https://www.nowcoder.net/acm/contest/76/H
来源:牛客网
输入
No_Input
输出
Full arrangement of 1~8
备注:
1~3的全排列 : 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[] = {1,2,3,4,5,6,7,8};
do
{
cout <<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<" "<<a[4]<<" "<<a[5]<<" "<<a[6]<<" "<<a[7]<<endl;
}
while (next_permutation(a,a+8));
return 0;
}