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

C++에서 두 배열의 합으로 구성된 집합에서 N' 항목 찾기

<시간/>

이 문제에서는 크기가 m이고 요소 N인 두 개의 정렬된 배열 arr1[] 및 arr2[]가 제공됩니다. 우리의 임무는 두 배열의 합으로 구성된 집합에서 N번째 항목을 찾는 것입니다.

코드 설명 − 여기에서 arr1의 요소 1과 arr2 중 하나의 합, 즉 sum =arr1[i] + arr2[j]로 구성된 집합을 생성합니다. 여기서 i , j

문제를 이해하기 위해 예를 들어보겠습니다.

입력

arr1[] = {3, 1, 5} , arr2[] = {6, 2, 8} , N = 4

출력

설명

집합의 요소는 -

9 (3+6 and 1 +8) , 5 (3 + 2) , 11 (3+8, 5+6), 7 (1+6, 5+2), 3 (1+2), 13 (5+8).
The fourth element is 7.

솔루션 접근 방식

솔루션 접근 방식은 단순히 배열 요소의 합을 찾아 집합의 요소를 찾는 것입니다. 이를 위해 중첩 루프, 외부 루프를 사용하여 arr1의 요소를 반복하고 내부 루프를 사용하여 arr2의 요소를 반복합니다. 그리고 내부 루프의 각 반복에 대해 합계를 집합에 저장하여 중복 요소를 허용하지 않습니다. 모든 합계 값이 제공된 후 집합을 순회하고 N번째 요소를 반환합니다.

우리 솔루션의 작동을 설명하는 프로그램

예시

#include <iostream>
using namespace std;
void calcSumVariables(int sum[], int n) {
   float SUMX = 0;
   for (int i = 0; i < n; i++) {
      SUMX += sum[i];
   }
   SUMX /= (n - 1);
   for (int i = 0; i < n; i++)
      cout<<"\nx"<<(i + 1)<<" = "<<(SUMX - sum[i]);
}
int main(){
   int sum[] = {3, 8, 6, 7, 4, 5, 9 };
   int N = sizeof(sum) / sizeof(sum[0]);
   cout<<"The value of variables that form the sum are ";
   calcSumVariables(sum, N);
   return 0;
}

출력

The value of variables that form the sum are
x1 = 4
x2 = -1
x3 = 1
x4 = 0
x5 = 3
x6 = 2
x7 = -2