이 튜토리얼에서는 한 자릿수 교환으로 가능한 가장 큰 짝수를 찾는 프로그램을 작성할 것입니다.
문제를 해결하는 단계를 살펴보겠습니다.
- 문자열 형식으로 숫자를 초기화합니다.
- 주어진 숫자를 반복합니다.
- 숫자의 마지막 숫자보다 작거나 같은 짝수를 찾습니다.
- 원하는 짝수를 찾으면 루프를 끊습니다.
- 짝수가 없으면 주어진 숫자를 반환합니다.
- 마지막 숫자를 위 단계에서 찾은 짝수로 바꿉니다.
- 번호 반환
예
#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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.