![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2csUTOtllb1cVWvBHSilHbyolb1cVWvB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4MjMyADO0ETMwMDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
注解
1、STL的應用,next_permutation生成下一個排列。
2、格式控制:空行、前導0的處理。
代碼
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int a[4];
cin>>a[0]>>a[1]>>a[2]>>a[3];
while(a[0] || a[1] || a[2] || a[3]) {
sort(a, a+4);
int last;
for(int i=0; i<4; i++){
if(a[i]){
last = a[i];
break;
}
}
int isFirst = 1;
do {
if(a[0]) {
if(last!=a[0]) {
cout<<endl;
isFirst = 1;
last = a[0];
}
if(isFirst) {
cout<<a[0]<<a[1]<<a[2]<<a[3];
isFirst = 0;
} else {
cout<<" "<<a[0]<<a[1]<<a[2]<<a[3];
}
}
} while(next_permutation(a, a+4));
cout<<endl;
cin>>a[0]>>a[1]>>a[2]>>a[3];
if(a[0] || a[1] || a[2] || a[3]){
cout<<endl;
}
}
return 0;
}