0
已解决
汪恺恒
中级启示者
中级启示者
题目描述 Description
现在给出一个正整数num,试在交换num中某两位数字一次的情况下,求出能得到的最大数字;如果不需要交换,则输出原数字。
输入描述 Input Description
一个正整数,num
输出描述 Output Description
交换一次后能得到的最大正整数
样例输入 Sample Input
【样例输入1】 2736 【样例输入2】 9973
样例输出 Sample Output
【样例输出1】 7236 【样例输出2】 9973
WA60
#include<bits/stdc++.h>
using namespace std;
char s[100];
int maxn=-1,p;
int main(){
gets(s);
for(int i=0;i<strlen(s);i++){
if(int(s[i])-48>maxn){
maxn=int(s[i])-48;
p=i;
}
}
swap(s[0],s[p]);
puts(s);
return 0;
}
WA20
#include<bits/stdc++.h>
using namespace std;
string s;
int maxn=-1,p;
int main(){
cin>>s;
for(int i=0;i<s.size();i++){
if(int(s[i])-48>maxn){
maxn=int(s[i])-48;
p=i;
}
}
cout<<maxn;
for(int i=0;i<s.size();i++){
if(i==p) continue;
cout<<s[i];
}
return 0;
}
求思路!
@周琪岳