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追加了内容
我会了!谁来回答一下?