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

C++에서 짝수 및 홀수 합을 사용하여 순서 쌍 수 계산


n개의 양수 배열이 주어집니다. 목표는 arr[x]와 arr의 합으로 순서쌍(arr[x], arr[y])을 계산하는 것입니다. [y]는 짝수 또는 홀수입니다. 쌍( arr[i],arr[j] ) 및 ( arr[j],arr[i] 는 개별적으로 계산됩니다.

각 쌍 수에 대해 두 개의 for 루프를 사용하여 배열을 탐색합니다. 이제 합계를 계산합니다. 짝수인 경우 짝수인 경우 2씩 증가하고 홀수인 경우에는 2만큼 증가합니다.

예를 들어 이해합시다.

입력 − Arr[]={ 1,1,2,3 } N=4

출력 − 짝수 곱의 합 수 − 6 홀수 합 쌍의 수 − 6

설명 − 유효한 홀수 합 쌍은 −

Arr[0] & Arr[1] → (1,1) Arr[1] & Arr[0] → (1,1) count=2
Arr[0] & Arr[3] → (1,3) Arr[3] & Arr[0] → (3,1) count=2
Arr[1] & Arr[3] → (1,3) Arr[3] & Arr[1] → (3,1) count=2 Total=6
Valid even sum pairs are:
Arr[0] & Arr[2] → (1,2) Arr[2] & Arr[0] → (2,1) count=2
Arr[1] & Arr[2] → (1,2) Arr[2] & Arr[1] → (2,1) count=2
Arr[2] & Arr[3] → (2,3) Arr[3] & Arr[2] → (3,2) count=2 Total=6

입력 - Arr[]={ 2,2,2 } N=3

출력 − 짝수 합 쌍의 수 − 6 홀수 합 쌍의 수 − 0

설명 − 유효한 짝수 제품 쌍은 −

Arr[0] & Arr[1] → (2,2) Arr[1] & Arr[0] → (2,2) count=2
Arr[1] & Arr[2] → (2,2) Arr[2] & Arr[1] → (2,2) count=2
Arr[2] & Arr[3] → (2,2) Arr[3] & Arr[2] → (2,2) count=2 Total=6
No odd sum as all elements are even.

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

  • 임의의 숫자로 초기화된 정수 배열 arr[]을 사용합니다.

  • Arr[]의 길이를 저장하는 변수 n을 사용합니다.

  • countPairs(int arr[], int n) 함수는 배열의 길이를 입력으로 취하고 짝수 및 홀수 합으로 쌍의 개수를 인쇄합니다.

  • 쌍의 각 요소에 대해 두 개의 for 루프를 사용하여 배열을 탐색합니다.

  • 0<=i

  • arr[i]+arr[j]%2==0인지 확인하십시오. arr[i],arr[j] 및 arr[j],arr[i]는 두 쌍이 되므로 짝수 합 쌍의 수를 계산하려면 count1을 2만큼 증가시킵니다.

  • 위의 조건이 거짓이면 홀수 합 쌍에 대해 count2를 2만큼 증가시킵니다.

  • 모든 루프의 끝에서 count1에는 짝수 합계가 있는 총 쌍 수가 있고 count2에는 홀수 합계가 있는 총 쌍 수가 있습니다.

  • 결과로 count1과 count2를 출력합니다.

예시

#include <bits/stdc++.h>
using namespace std;
void countPairs(int arr[], int n){
   int count1=0; //even sum pairs
   int count2=0; //odd sum pairs
   int sum=0;
   for(int i=0;i<n-1;i++){
      for(int j=i+1;j<n;j++){
         sum=arr[i]+arr[j];
         if(sum%2==0) //sum is even
            { count1+=2; } //(a,b) and (b,a) as two pairs
         else
            { count2+=2; }
      }
   }
   cout<<"Even Sum pairs: "<<count1;
   cout<<endl<<"Odd Sum pairs: "<<count2;
}
int main(){
   int arr[] = { 1,2,3,2 };
   int n = sizeof(arr) / sizeof(int);
   countPairs(arr, n);
   return 0;
}

출력

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

Even Sum pairs: 4
Odd Sum pairs: 8