题目:
给定一个奇数,交换两个数的位置,使它变成最大的偶数
解析:
将奇数的个位数 与 它之前的所有偶数比较,碰到比它小的数替换即可。 如果个位数比所有偶数都小,则把它与 最低位的偶数交换。
#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int main()
{
char c[100000];
cin>>c;
int length = strlen(c);
bool flag = 0;
int pos = -1;
for(int i=0;i<length;i++)
{
if(c[i]%2 ==0)
{
pos = i;
if(c[i]<c[length-1])
{
swap(c[i], c[length-1]);
flag = 1;
break;
}
}
}
if(!flag)
{
swap(c[pos], c[length-1]);
}
cout<<c<<endl;
return 0;
}