在给定的数字中使用交换操作找到的最大偶数的 C++ 代码


在本文中,我们将编写一个程序,使用单个数字交换来找出最大的偶数。

让我们看看解决问题的步骤。

  • 以字符串格式初始化数字。
  • 遍历给定的数字。
    • 找到小于或等于该数字末尾数字的偶数。
    • 如果您找到所需的偶数,则中断循环。
  • 如果不存在偶数,则返回给定的数字。
  • 将末尾数字与您在上述步骤中找到的偶数交换。
  • 返回该数字

示例

 实时演示

#include <bits/stdc++.h>
using namespace std;
string getLargestEvenNumber(string number, int n) {
   int even = INT_MAX, index;
   for (int i = 0; i < n - 1; i++) {
      if ((number[i] - '0') % 2 == 0) {
         even = (number[i] - '0');
         index = i;
      }
      if (even <= (number[n - 1] - '0')) {
         break;
      }
   }
   if (even == INT_MAX) {
      return number;
   }
   swap(number[index], number[n - 1]);
   return number;
}
int main() {
   string number = "15433";
   cout << getLargestEvenNumber(number, 5) << endl;
   return 0;
}

输出

如果您运行以上代码,则会得到以下结果。

15334

结论

如果您对本教程有任何疑问,请在评论部分中提及。

更新于: 09-4-2021

662 次浏览

启动你的职业

通过完成课程获得认证

立即开始
广告