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

C++에서 주어진 합계가 있는 네 쌍의 개수


4개의 배열이 제공됩니다. 목표는 주어진 합계 값과 합계가 같은 4개의 배열에서 요소의 4중항을 찾는 것입니다. 선택한 요소는 4개의 요소가 모두 다른 배열에 속하도록 해야 합니다.

for 루프를 사용하여 모든 배열을 탐색하고 A[i]+B[j]+C[k]+D[l]==sum인지 확인하여 이를 수행합니다. 예인 경우 카운트를 증가시킵니다.

예를 들어 이해합시다 -

입력 -

A[]={ 1,3,1}, B[]={ 2,4,5 } , C[]={ 1,1,2 } , D[]= { 4,4,0} Sum=5

출력 − 주어진 합계를 가진 4중항의 개수는 − 2

입니다.

설명 -

2 quadrutplets are:
(A[0],B[0],C[2],D[2]) → (1,2,2,0), sum=5
(A[2],B[0],C[2],D[2]) → (1,2,2,0), sum=5

입력 -

A[]={ 1,1,1}, B[]={ 1,1,1 } , C[]={ 1,1,1 } , D[]= {1,1,1} Sum=3

출력 − 주어진 합계를 가진 4중항의 개수는 − 0

입니다.

설명 −모든 사중항의 합은 4(>3)가 됩니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 임의의 숫자로 초기화된 동일한 길이의 첫 번째[], 두 번째[], 세 번째[] 및 네 번째[] 정수 배열을 사용합니다.

  • 변수 first_size, second_size, third_size, four_size를 사용하여 각각의 길이를 저장합니다.

  • 주어진 합계 값에 대해 가변 합계를 취합니다.

  • 함수 quadruplets(int first[], int second[], int third[], int four[], int first_size, int second_size, int third_size, int four_size, int sum)은 모든 배열과 배열의 길이를 합으로 취하여 다음 개수를 반환합니다. 주어진 합계를 가진 사중항

  • FOR 루프를 사용하여 각 배열 순회

  • 가장 바깥쪽 루프 0<=i

  • 첫 번째[i] + 두 번째[j] + 세 번째[k] + 네 번째[l] ==합인지 비교합니다. true인 경우 카운트가 증가합니다.

  • 모든 루프의 끝에서 count는 주어진 합계와 함께 4중항을 갖게 됩니다.

  • 결과로 카운트를 반환합니다.

예시

#include <bits/stdc++.h>
using namespace std;
int quadruplets(int first[], int second[], int third[], int fourth[], int first_size, int second_size, int
third_size, int fourth_size, int sum){
   int count = 0;
   for (int i = 0; i < first_size; i++){
      for (int j = 0; j < second_size; j++){
         for (int k = 0; k < third_size; k++){
            for (int l = 0; l < fourth_size; l++){
               if (first[i] + second[j] + third[k] + fourth[l] == sum){
                  count++;
               }
            }
         }
      }
   }
   return count;
}
int main(){
   int first[] = { 7, -8 };
   int second[] = { 7, -2 };
   int third[] = { 4, -2 };
   int fourth[] = { 3, -4 };
   int first_size = sizeof(first) / sizeof(first[0]);
   int second_size = sizeof(second) / sizeof(second[0]);
   int third_size = sizeof(third) / sizeof(third[0]);
   int fourth_size = sizeof(fourth) / sizeof(fourth[0]);
   int sum= 0;
   cout<<"Count of quadruplets with given sum are: "<<quadruplets(first, second, third, fourth, first_size, second_size, third_size, fourth_size, sum);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Count of quadruplets with given sum are: 1