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

양쪽에 동일한 개수의 짝수 또는 홀수가 있는 배열 인덱스용 C++ 프로그램?

<시간/>

짝수 또는 홀수의 개수가 같은 배열 인덱스를 찾는 것은 양쪽에 동일한 개수의 숫자 또는 홀수가 있는 숫자입니다.

여기에서 개념과 관련된 몇 가지 정의가 필요합니다.

배열 − 데이터 유형이 동일한 요소의 컨테이너입니다.

배열 색인 - 요소의 위치를 ​​인덱스라고 합니다. 배열의 인덱스는 항상 0부터 시작합니다.

짝수 − 2로 나누어 떨어지는 수.

홀수 - 2로 나누어 떨어지지 않는 수.

정수는 짝수 또는 홀수일 수 있습니다.

이제 개념을 보다 명확하게 해주는 예를 살펴보겠습니다.

Input: arr[] = {4, 3, 2, 1, 2}
Output : 2

설명

인덱스 2에는 왼쪽에 하나의 홀수가 있고 오른쪽에 하나의 홀수가 있습니다.

왼쪽에 짝수의 요소가 있고 오른쪽에 짝수의 요소가 있는 방식으로 배열 요소의 인덱스를 찾을 수 있는 n개의 정수 배열이 있습니다. 그렇지 않으면 홀수의 빈도를 찾아야 합니다. 왼쪽에 있는 요소의 수는 거기에 있는 홀수의 요소의 빈도와 같습니다. 그런 조건이 없으면 오른쪽에 있습니다. 따라서 우리는 누구에게 ok를 작성해야 하는지 인쇄 -1 이러한 유형의 조건이 있으면 다음을 수행해야 합니다. 인덱스 인쇄

알고리즘

양쪽에 짝수 또는 홀수의 개수가 있는 요소의 인덱스를 계산하려면 주어진 요소의 왼쪽과 오른쪽에 있는 요소의 개수를 찾아야 합니다.

주어진 배열 arr[], n개의 배열 요소

Step 1 : For i -> 0 to n, follow step 2 - 5:
Step 2: initialise e_l, o_l, e_r, o_r to 0.
Step 3: for j -> o to i
   Step 3.1 : count values for e_l and o_l.
Step 4: for j -> i+1 to n
   Step 4.1 : count values for e_r and o_r.
Step 5: if(e_l == e_r) or (o_l == e_r ) , print i.

예시

#include <iostream>
using namespace std;
int main() {
   int arr[] = {4, 3, 2, 1, 2};
   int n = 5;
   cout<<"The array is : ";
   for(int i = 0; i < n; i++) {
      cout<<arr[i]<<" ";
   }
   cout<<"\nThe index of the element with the same count of even or odd numbers on both sides = ";
   for (int i = 0; i < n; i++) {
      int o_l = 0, e_l = 0;
      int o_r = 0, e_r = 0;
   for (int j = 0; j < i; j++) {
      if (arr[j] % 2 == 0)
         e_l++;
      else
         o_l++;
   }
   for (int k = n - 1; k > i; k--) {
      if (arr[k] % 2 == 0)
         e_r++;
      else
         o_r++;
   }
   if (e_r == e_l || o_r == o_l)
      cout<<i<<endl;
   }
   return 0;
}

출력

The array is : 4 3 2 1 2
The index of the element with the same count of even or odd numbers on both sides = 2