三位数重新排列c++

题目描述

给你一个三位数 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=33
    cout<<sum;
    return 0;
}
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值