이 튜토리얼에서는 아래의 문제를 풀 것입니다.
정수 배열이 주어지면 두 개의 숫자 A와 B를 찾아야 합니다. 배열의 나머지 숫자는 모두 A와 B의 제수입니다.
숫자가 A와 B의 제수이면 배열에 두 번 나타납니다.
문제를 해결하는 단계를 살펴보겠습니다.
-
배열의 최대 숫자는 A와 B의 숫자 중 하나입니다. A라고 합시다.
-
이제 B는 두 번째로 큰 숫자 또는 A의 약수가 아닌 숫자가 됩니다.
예시
코드를 봅시다.
#include <bits/stdc++.h> using namespace std; void findTheDivisors(int arr[], int n) { sort(arr, arr + n); int A = arr[n - 1], B = -1; for (int i = n - 2; i > -1; i--) { if (A % arr[i] != 0) { B = arr[i]; break; } if (i - 1 >= 0 && arr[i] == arr[i - 1]) { B = arr[i]; break; } } cout << "A = " << A << ", B = " << B << endl; } int main() { int arr[] = { 3, 2, 3, 4, 12, 6, 1, 1, 2, 6 }; findTheDivisors(arr, 10); return 0; }
출력
위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
A = 12, B = 6
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.