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

จำนวนองค์ประกอบน้อยกว่าหรือเท่ากับตัวเลขที่กำหนดในซับอาร์เรย์ใน C++

โจทย์

คุณได้รับตัวเลขหนึ่งตัวและดัชนีขอบเขตล่างและบนของซับอาร์เรย์ คุณต้องนับจำนวนองค์ประกอบที่น้อยกว่าหรือเท่ากับตัวเลขที่กำหนด มาดูตัวอย่างกัน

อินพุต

arr = [1, 2, 3, 4, 5, 6, 7, 8] k = 4 lower = 0 upper = 5

เอาต์พุต

4

มี 4 องค์ประกอบระหว่างดัชนี 0 ถึง 5 ที่น้อยกว่าหรือเท่ากับ 4

อัลกอริธึม

  • กำหนดค่าอาร์เรย์ ตัวเลข และดัชนีซับอาร์เรย์
  • กำหนดตัวนับเป็น 0
  • เขียนลูปวนรอบจากดัชนีล่างของซับอาร์เรย์ถึงดัชนีบนของซับอาร์เรย์
    • ถ้าองค์ประกอบปัจจุบันน้อยกว่าหรือเท่ากับตัวเลขที่กำหนด ให้เพิ่มตัวนับ
  • คืนค่าตัวนับ

การนำไปใช้งาน

ต่อไปนี้เป็นการนำไปใช้งานของอัลกอริธึมข้างต้นใน C++

#include <bits/stdc++.h> 
using namespace std; 

int getElementsCount(int arr[], int n, int lower, int upper, int k) { 
    if (lower < 0 || upper >= n || lower > upper) { 
        return 0; 
    } 
    int count = 0; 
    for (int i = lower; i <= upper; i++) { 
        if (arr[i] <= k) { 
            count += 1; 
        } 
    } 
    return count; 
} 

int main() { 
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; 
    int n = 8, k = 4; 
    cout << getElementsCount(arr, n, 0, 3, k) << endl; 
    cout << getElementsCount(arr, n, 4, 7, k) << endl; 
    return 0; 
}

ผลลัพธ์

หากคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้

4 0