Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับองค์ประกอบที่มีองค์ประกอบ X ที่มีค่ามากกว่าหรือเท่ากับ X ใน C++


เราได้รับอาร์เรย์ของจำนวนเต็ม เป้าหมายคือการหาจำนวนองค์ประกอบในอาร์เรย์ที่ตรงตามเงื่อนไขต่อไปนี้ -

สำหรับแต่ละองค์ประกอบ จำนวนตัวเลขที่มากกว่าหรือเท่ากับที่มีอยู่ในอาร์เรย์ควรเท่ากับมันทุกประการ ไม่รวมองค์ประกอบเอง หากองค์ประกอบเป็น 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 ซึ่งจะนับจำนวนดังกล่าว

  • สำรวจอาร์เรย์โดยเริ่มจากองค์ประกอบแรก ( index=0 ) โดยใช้ for loop

  • ด้านในสำหรับวนซ้ำจากองค์ประกอบเริ่มต้นอีกครั้ง หากมี arr[j]>=arr[j] เช่น thati!=j ให้เพิ่มการนับ

  • หลังจากสิ้นสุด j loop ให้เปรียบเทียบ count กับ arr[i] หาก count==arr[i] (องค์ประกอบ arr[i] คือ>=arr[i] ให้เพิ่มคำตอบ 'ans'

  • หลังจากสิ้นสุดทั้งสอง for loops ให้ส่งคืนผลลัพธ์ใน '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