네 개의 배열 A[], B[], C[] 및 D[]가 제공됩니다. 목표는 A[i]+B[j]+C[k]+D[l] =x가 되도록 이러한 배열의 모든 4배 요소를 찾는 것입니다. 4개의 배열은 모두 동일한 수의 요소 N을 갖습니다.
각 배열을 한 번 탐색하고 A[i]+B[j]+C[j]+D[l]==x인지 비교하여 이를 수행합니다. true인 경우 카운트가 증가합니다.
예를 들어 이해합시다.
입력
A[]={ 1,2,3}; B[]={ 2,3,2}; C[]={ 4,3,1}; D[]={ 3,1,1 }; X=12
출력
Count of Quadruples: 4
설명
Quadruples such as ( A[i] B[j] C[k] D[l] ) are: (2 3 4 3) , (3 2 4 3), (3 3 3 3), (3 2 4 3) Number of quadruples : 4
입력
A[]={ 1,1,1}; B[]={ 2,2,2}; C[]={ 3,3,3}; D[]={ 4,4,4 }; X=15
출력
Count of Quadruples: 0
설명
No such elements could be paired.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
임의의 숫자로 초기화된 동일한 길이의 정수 배열 A[], B[], C[] 및 D[]를 사용합니다.
-
변수 N을 사용하여 길이를 저장합니다.
-
countQuad(int a[],int b[],int c[],d[],int x, int n) 함수는 길이가 n인 모든 배열을 입력으로 받아 개수를 반환합니다.
-
각 배열에 대해 4개의 루프를 사용하여 순회합니다.
-
가장 바깥쪽 루프 0<=i
-
a[i]+b[j]+c[k]+d[l]==x인지 비교합니다. true인 경우 카운트가 증가합니다.
-
모든 루프가 끝나면 합계가 x인 4배가 카운트됩니다.
-
결과로 카운트를 반환합니다.
예시
#include <bits/stdc++.h> using namespace std; int countQuads(int a[],int b[],int c[],int d[],int x, int n){ int count = 0; for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++){ for (int k = 0; k < n; k++){ for (int l = 0; l < n; l++){ int sum=a[i]+b[j]+c[k]+d[l]; if(sum==x){ count++; cout<<endl<<a[i]<<" "<<b[j]<<" "<<c[k]<<" "<<d[l];} } } } } return count; } int main(){ int A[]={ 1,1,1}; int B[]={ 2,2,2}; int C[]={ 3,3,3}; int D[]={ 4,4,4 }; int X=15; int N=3; //length of each array cout <<endl<< "Number of quadruples : "<<countQuads(A,B,C,D,X,N); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
Number of quadruples : 0