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