1040: 【入门】求任意三位数打乱次序后的最大值

内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:58 解决:36

题目描述

任意输入一个三位整数,再把它的次序打乱重新组合一个新的三位整数,使其值最大。

输入

输入只有一行,包括1个整数。

输出

输出只有一行(这意味着末尾有一个回车符号),包括1个整数。

样例输入 复制

470

样例输出 复制

740

提示

n=int(input())
c=n%10
n//=10
b=n%10
n//=10
a=n%10
if a>=b and b>=c:
    ans=a*100+b*10+c
elif a>=c and c>=b:
    ans=a*100+c*10+b
elif b>=a and a>=c:
    ans=b*100+a*10+c
elif b>=c and c>=a:
    ans=b*100+c*10+a
elif c>=a and a>=b:
    ans=c*100+a*10+b
elif c>=b and b>=a:
    ans=c*100+b*10+a
print(ans)

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,a,b,c,ans=0;
    cin>>n;
    c=n%10;
    n/=10;
    b=n%10;
    n/=10;
    a=n%10;
    if (a>=b&&b>=c)
        ans=a*100+b*10+c;
    else if (a>=c&&c>=b)
        ans=a*100+c*10+b;
    else if (b>=a&&a>=c)
        ans=b*100+a*10+c;
    else if (b>=c&&c>=a)
        ans=b*100+c*10+a;
    else if (c>=a&&a>=b)
        ans=c*100+a*10+b;
    else if (c>=b&&b>=a)
        ans=c*100+b*10+a;						    
    
    cout<<ans;
	return 0;
}