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

C++에서 연속 요소의 정렬된 배열에서 반복되는 요소의 수


길이가 n인 연속된 숫자의 배열이 제공됩니다. 배열에는 두 번 이상 반복되는 하나의 숫자만 있습니다. 목표는 해당 요소가 배열에서 반복되는 횟수를 얻는 것입니다. 또는 배열에서 반복되는 요소의 길이를 찾을 수 있습니다.

i=0에서 i

예를 들어 이해합시다.

입력 - arr[]={ 0,1,2,3,3,3 }, N=6

출력 − 반복 요소의 개수 − 3

설명 − 3은 여기에서 세 번 반복됩니다.

입력 - arr[]={ 1,2,3,4,4,4,4,4,5,6 }, N=10

출력 − 반복 요소의 개수 − 5

설명 − 4는 여기에서 5번 반복됩니다.

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

  • 하나의 숫자가 반복되는 연속 숫자로 초기화된 정수 배열 arr[]를 사용합니다.

  • 변수 len은 배열의 길이를 저장합니다.

  • findRepeat(int arr[],int n) 함수는 배열과 그 길이를 입력으로 받아 반복 요소 값과 반복 요소 길이를 표시합니다.

  • 초기 카운트를 0으로 합니다.

  • 인덱스 i=0에서 시작하여 i

  • 루프가 끝나면 마지막 요소에 대해 1씩 증가합니다.

  • 값으로 반복되는 요소를 표시합니다.

  • 반복 횟수를 카운트로 표시합니다.

#include <bits/stdc++.h>
using namespace std;
void findRepeat(int arr[],int n){
   int count=0; //count of repeated element
   int value=0; //to store repeated element
   for(int i=0;i<n;i++){
      if(arr[i]==arr[i+1]){
         count++;
         value=arr[i];
      }
   }
   count++; //for last element
   cout<<"Repeated Element: "<<value;
   cout<<endl<<"Number of occurrences: "<<count;
}
int main(){
   int Arr[]={ 2,3,4,5,5,5,6,7,8 };
   int len=sizeof(Arr)/sizeof(Arr[0]);
   findRepeat(Arr,len);
   return 0;
}

출력

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

Repeated Element: 5
Number of occurrences: 3