Computer >> Máy Tính >  >> Lập trình >> C ++

Số chẵn lớn nhất có thể bằng cách sử dụng một thao tác hoán đổi ở một số nhất định trong C ++

Trong hướng dẫn này, chúng tôi sẽ viết một chương trình tìm số chẵn lớn nhất có thể với một lần hoán đổi các chữ số.

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo số ở định dạng chuỗi.
  • Lặp lại một số đã cho.
    • Tìm chữ số chẵn nhỏ hơn hoặc bằng chữ số cuối cùng của số đó.
    • Ngắt vòng lặp nếu bạn tìm thấy chữ số chẵn mong muốn.
  • Nếu không tồn tại chữ số chẵn thì hãy trả về số đã cho.
  • Hoán đổi chữ số cuối cùng với chữ số chẵn mà bạn đã tìm thấy ở bước trên.
  • Trả lại số điện thoại

Ví dụ

#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;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

15334

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.