问题标题: 酷町堂:4244最大数字

0
0
已解决
董宇昊
董宇昊
初级启示者
初级启示者

题目描述 Description

现在给出一个正整数num,试在交换num中某两位数字一次的情况下,求出能得到的最大数字;如果不需要交换,则输出原数字。

输入描述 Input Description

一个正整数,num

输出描述 Output Description

交换一次后能得到的最大正整数

样例输入 Sample Input

【样例输入1】 2736 【样例输入2】 9973

样例输出 Sample Output

【样例输出1】 7236 【样例输出2】 9973

数据范围及提示 Data Size & Hint

num在int的范围内

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本人的核心思路,一个变量存储num数位上的最大值,另一个变量存储num原来的值

最后输出,但不知如何删除?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

现实更惨,为什么会输出两遍?

循环取位数不对吗?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
using namespace std;
int a,sum=0,cnt;
int main()
{
    cin>>a;
    cnt=a;
    while(1){
        if(a==0) break;
        if(a%10>sum) sum=a;
        a=a/10;
    }
    cout<<sum<<cnt;
    return 0;
}

 

董宇昊在2020-04-10 13:55:42追加了内容

我会了!谁来回答一下?


0
0
0
我要回答