题目描述
输入一个三位数n,将这个数的百位、十位、个位都重新组合,按从大到小输出三位数上的数重新组合的所有的组合体,如输入123则从大到小重新组合的所有情况输出:
321
312
231
213
132
123
输入
输入一个正整数的三位数n,而且百位、十位、个位上的数不相同。(100<=n<=999)
输出
按从大到小输出三位数上的数重新组合的所有的组合体,每个组合体单独一行
样例输入
123
样例输出
321
312
231
213
132
123
#include<bits/stdc++.h>
#define quickly() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
int main(){
quickly();
int n;cin>>n;
int digits[3];
digits[0]=n/100,digits[1]=(n/10)%10,digits[2]=n%10;
sort(digits,digits+3,greater<int>());
do{
for(int i=0;i<3;i++){
cout<<digits[i];
}cout<<endl;
}while(prev_permutation(digits,digits+3));
}