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

นับสมาชิกที่มีจำนวนค่าที่มากกว่าหรือเท่ากับตัวมันเองเท่ากับตัวมันเองใน C++


เราได้รับอาเรย์จำนวนเต็ม เป้าหมายคือนับสมาชิกที่ทำให้เงื่อนไข: สำหรับสมาชิก X จำนวนตัวเลขในอาเรย์ที่ >= X (ไม่นับตัวมันเอง) ต้องเท่ากับ X อย่างแน่นอน

อินพุต

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

เอาต์พุต

Elements exactly greater than equal to itself: 1

คำอธิบาย − Arr[3]=3 มีตัวเลข >=3 ทั้งหมด 3 ตัว (4,8,9) นับได้ 1

อินพุต

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

เอาต์พุต

Elements exactly greater than equal to itself: 0

คำอธิบาย − ทุกตัวเท่ากัน จำนวน >=1 คือ 4 ไม่เท่ากับ 1

วิธีการที่ใช้ในโปรแกรมด้านล่าง

  • อาเรย์ Arr[] และ n
  • ฟังก์ชัน findcount(int arr[], int n) คืนค่าจำนวนสมาชิกที่ตรงเงื่อนไข
  • เรียงอาเรย์ก่อน (sort)
  • ลูป i=0..n-1 นับ count = จำนวน arr[j] >= arr[i] โดย j != i
  • ถ้า count == arr[i] เพิ่ม ans
  • คืนค่า ans

ตัวอย่างโค้ด

#include <iostream>
#include <algorithm>
using namespace std;

int findcount(int arr[], int n) {
    sort(arr, arr + n);
    int ans = 0;
    for (int i = 0; i < n; i++) {
        int 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 n = sizeof(Arr) / sizeof(Arr[0]);
    cout << "Elements exactly greater than equal to itself: " << findcount(Arr, n);
    return 0;
}

ผลลัพธ์

Elements exactly greater than equal to itself: 1