#include<bits/stdc++.h>
using namespace std;
int num[5];
int a,b,c,d;
int main()
{
int t=0;//t判断是否为第一组输入,若不是第一组,输出前需要先输出换行
while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF){
if(a==0&&b==0&&c==0&&d==0) break;
num[0]=a;
num[1]=b;
num[2]=c;
num[3]=d;
sort(num,num+4);
if(t) cout<<endl;
t=1;
int f=1,k;//f判断是否为输出的第一行的第一个,k标记第一个数字,判断第一个数字是否改变
do{
if(num[0]==0) continue;
if(f){
cout<<num[0]<<num[1]<<num[2]<<num[3];
f=0;
}
else if(k==num[0]) cout<<" "<<num[0]<<num[1]<<num[2]<<num[3];
else cout<<endl<<num[0]<<num[1]<<num[2]<<num[3];
k=num[0];//此时k即num[0]已经改变
}while(next_permutation(num,num+4));
cout<<endl;
}
return 0;
}
hdu1716
最新推荐文章于 2021-09-17 18:16:34 发布
这段代码主要展示了如何利用C++对四个整数进行全排列,并按升序输出。程序首先读取四个数字,然后通过排序和next_permutation函数生成所有可能的排列组合,并打印。当遇到四个零时,程序结束。此代码着重于排列算法的应用。
1992

被折叠的 条评论
为什么被折叠?



