Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.