N개 요소의 배열 arr[]이 제공됩니다. 목표는 특정 조건을 따르는 모든 유효한 쌍(Arr[i],Arr[j])의 수를 찾는 것입니다. -
인 경우 Arr[i],Arr[j] 쌍이 유효하지 않습니다.- Arr[i]==Arr[j]
- Arr[i]+Arr[j]는 짝수입니다.
- i+j<120
참고 - Arr[i],Arr[j] 및 Arr[j],Arr[i]는 한 쌍으로 계산됩니다. 유효한 쌍에는 i!=j가 있습니다. 예를 들어 이해합시다.
입력
Arr[]= { 3,2,1,2,4,3 } N=4
출력
Count of valid pairs: 2
설명
유효한 쌍은 -
Arr[0] & Arr[4] → (3,3) here Arr[i]==Arr[j] & 3+3 is even also i!=j and i+j<120 Arr[1] & Arr[3] → (2,2) here Arr[i]==Arr[j] & 2+2 is even also i!=j and i+j<120입니다.
입력
Arr[]= { 1,2,3,4,5,6 } N=6
출력
Count of valid pairs: 0
설명
요소의 반복이 없습니다. i!=j인 경우 유형( a,a ) 쌍이 불가능합니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
- 난수로 초기화된 정수 배열 Arr[]을 사용합니다.
- Arr[]의 길이를 저장하는 변수 n을 사용합니다.
- countPairs(int arr[], int n) 함수는 배열의 길이를 입력으로 받아 유효하고 원하는 조건을 충족하는 쌍을 반환합니다.
- 쌍의 각 요소에 대해 두 개의 for 루프를 사용하여 배열을 탐색합니다.
- 0<=i
- arr[i], arr[j] assum=(arr[i]+aar[j])의 합을 계산합니다.
- 쌍이 유효한지 확인합니다. i!=j 및 sum%2==0도 i+j<120인지 비교합니다.
- 이제 arr[i]==arr[j]인지 확인합니다. 증분 수.
- 모든 루프가 끝날 때 유효한 총 쌍 수가 있습니다.
- 결과로 개수를 반환합니다.
예
#include <bits/stdc++.h> using namespace std; int countPairs(int arr[], int n){ int count=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++) //j=i+1 we don't have to check i!=j{ int sum=arr[i]+arr[j]; //valid pairs have i!=j if( sum%2==0 && i+j<120){ if( arr[i]==arr[j] ) //valid pair{ count++; cout<<endl<<" a:"<<arr[i]<<"b: "<<arr[j]; } } } } return count; } int main(){ int arr[] = {1,2,3,2,4,1,4 }; int n = sizeof(arr) / sizeof(arr[0]); cout <<endl<<"Valid pairs in array:"<<countPairs(arr, n); return 0; }
출력
Valid pairs in array: a:1b: 1 a:2b: 2 a:4b: 43