Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số chẵn lớn nhất có thể bằng một phép hoán vị trong C++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm số chẵn lớn nhất có thể bằng một phép hoán vị (swap) các chữ số.

Các bước giải quyết

  • Khởi tạo số dưới dạng chuỗi.
  • Duyệt qua số cho trước:
    • Tìm chữ số chẵn nhỏ hơn hoặc bằng chữ số cuối cùng.
    • Dừng vòng lặp nếu tìm thấy chữ số chẵn mong muốn.
  • Nếu không tồn tại chữ số chẵn, trả về số ban đầu.
  • Hoán vị chữ số cuối cùng với chữ số chẵn tìm được.
  • Trả về số kết quả.

Ví dụ

Dưới đây là mã nguồn 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; 
}

Kết quả

Nếu bạn chạy mã trên, kết quả sẽ là:

15334

Kết luận

Nếu bạn có bất kỳ thắc mắc nào về hướng dẫn này, hãy để lại bình luận bên dưới.