计算元素,以便在C ++中恰好有X个元素的值大于或等于X

给我们一个整数数组。目标是找到满足以下条件的数组中元素的数量-

对于每个元素,数组中存在的大于或等于它的数字计数应完全等于它。排除元素本身。如果element是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的数字计数。

  • 可变计数用于存储像X这样的数字的计数。

  • 初始化ans = 0,它将计算此类数字。

  • 使用for循环从第一个元素(index = 0)开始遍历数组。

  • 在for循环中再次从起始元素开始遍历,如果任何arr [j]> = arr [j]使得i!= 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

以上是 计算元素,以便在C ++中恰好有X个元素的值大于或等于X 的全部内容, 来源链接: utcz.com/z/335229.html

回到顶部