题目描述
给你一个三位数 n(保证最高位不是 0),你可以重新调整它三个数位的顺序,请输出结果最小的一种。
输入
第一行一个整数 n。
输出
一行一个整数,重新调整顺序后,最小的结果。
注意,结果可能不是一个三位数,你的输出不应该有多余的前导 0。
如输入 303 则输出 33
如输入 333 则输出 333
样例输入
978
样例输出
789
提示
数据规模与约定
对于 100%100% 的数据,保证 n 是一个三位数且最高位不是 0
- 子任务 1(30 分):保证 n 的三个数位从小到大排列。
- 子任务 2(30 分):保证 n 没有哪个数位是 0。
- 子任务 3(40 分):没有特殊限制。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){long long n,g,s,b,max=INT_MIN,m,min=INT_MAX,sum;cin>>n;g=(n/1)%10;s=(n/10)%10;b=(n/100)%10;if(max<g) max=g;if(max<s) max=s;if(max<b) max=b;if(min>g) min=g;if(min>s) min=s;if(min>b) min=b;//打擂台求最大,最小值if(max==g&&min==s) m=b;if(max==g&&min==b) m=s;if(max==s&&min==b) m=g;if(max==s&&min==g) m=b;if(max==b&&min==g) m=s;if(max==b&&min==s) m=g;sum=min*100+m*10+max;//可自动省去前导0,如排序后是033,步骤:0*100+3*10+3=33cout<<sum;return 0;
}