在給定的數字中使用交換操作找到的最大偶數的 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 次瀏覽

啟動你的職業

透過完成課程獲得認證

立即開始
廣告