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

C++에서 X보다 크거나 같은 값을 가진 정확히 X개의 요소가 있도록 요소를 계산합니다.

<시간/>

정수 배열이 제공됩니다. 목표는 배열에서 다음 조건을 충족하는 요소의 개수를 찾는 것입니다. -

각 요소에 대해 배열에 있는 것보다 크거나 같은 숫자의 개수는 정확히 같아야 합니다. 요소 자체를 제외합니다. 요소가 X이면 배열은 X보다 크거나 같은 정확히 X개의 숫자를 갖습니다. (요소 제외)

입력

Arr[]= { 0,1,2,3,4,9,8 }

출력

Elements exactly greater than equal to itself : 1

설명 − 요소와 숫자>=그것에 −

Arr[0]: 6 elements are >= 0 , 6!=0 count=0
Arr[1]: 5 elements are >= 1 , 5!=1 count=0
Arr[2]: 4 elements are >= 2 , 4!=2 count=0
Arr[3]: 3 elements are >= 3 , 3==3 count=1
Arr[4]: 2 elements are >= 4 , 2!=4 count=1
Arr[4]: 0 elements are >= 9 , 0!=9 count=1
Arr[6]: 1 element is >= 8 , 1!=8 count=1

3은 정확히 3개의 요소가 (4,8,9)

에>=인 유일한 요소입니다.

입력

Arr[]= { 1,1,1,1,1 }

출력

Elements exactly greater than equal to itself : 0

설명 − 모든 요소가 동일하고 개수 !=1

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

  • 정수 배열 Arr[]은 정수를 저장하는 데 사용됩니다.

  • 정수 'n'은 배열의 길이를 저장합니다.

  • findcount(int arr[],int n) 함수는 배열과 그 크기를 입력으로 받아 앞에서 설명한 X와 같은 countof 숫자를 반환합니다.

  • 변수 개수는 X와 같은 숫자의 개수를 저장하는 데 사용됩니다.

  • 이러한 숫자를 계산할 ans=0을 초기화합니다.

  • for 루프를 사용하여 첫 번째 요소( index=0 )부터 시작하여 배열을 탐색합니다.

  • for 루프 내부에서 시작 요소에서 다시 순회합니다. i!=j와 같은 arr[j]>=arr[j]가 있으면 카운트를 증가시킵니다.

  • j 루프가 끝난 후 count를 arr[i]와 비교합니다. count==arr[i]인 경우(정확히 arr[i]요소가>=arr[i]인 경우 'ans' 응답을 증가시킵니다.

  • 두 for 루프가 모두 끝나면 'ans'에 있는 결과를 반환합니다.

#include <iostream>
#include <algorithm>
using namespace std;
int findcount(int arr[],int n){
   sort(arr,arr+n);
   int count=0;
   int ans=0;
   for(int i=0;i<n;i++){
      count=0;
      for(int j=0;j<n;j++){
         if(arr[j]>=arr[i] && i!=j)
            count++;
      }
      if(count==arr[i])
         ans++;
   }
   return ans;
}
int main(){
   int Arr[]= { 0,1,2,3,4,5,6 };
   int k=7;
   int n=sizeof(Arr)/sizeof(Arr[0]);
   std::cout<<"Elements exactly greater than equal to itself : "<<findcount(Arr,n);
   return 0;
}

출력

Elements exactly greater than equal to itself : 1