কম্পিউটার টিউটোরিয়াল

C++ ব্যবহার করে অনসর্টেড অ্যারেতে ফ্লোর ও সিলিং বের করা

এখানে আমরা দেখব কিভাবে অনসর্টেড অ্যারেতে ফ্লোর (floor) এবং সিলিং (ceiling) বের করতে হয়। ফ্লোর ভ্যালু হল x-এর চেয়ে ছোট বা সমান সবচেয়ে বড় এলিমেন্ট, এবং সিলিং ভ্যালু হল x-এর চেয়ে বড় সবচেয়ে ছোট এলিমেন্ট। যদি অ্যারে A = [5, 6, 8, 9, 6, 5, 5, 6], এবং x = 7 হয়, তবে ফ্লোর = 6 এবং সিলিং = 8।

এটি সমাধান করতে লিনিয়ার সার্চ পদ্ধতি ফলো করব। অ্যারেটি ট্রাভার্স করব এবং x-এর সাপেক্ষে দুটি দূরত্ব ট্র্যাক করব:

  • x-এর চেয়ে বড় বা সমান এলিমেন্টের ন্যূনতম দূরত্ব
  • x-এর চেয়ে ছোট বা সমান এলিমেন্টের ন্যূনতম দূরত্ব
  • শেষে ন্যূনতম দূরত্ব वाले এলিমেন্ট প্রিন্ট করব

উদাহরণ কোড

#include <iostream>
using namespace std;

void floorCeilingPair(int arr[], int n, int x) {
    int floor_index, ceiling_index;
    int floor_dist = INT_MAX, ceil_dist = INT_MAX;
    for (int i = 0; i < n; i++) {
        if (arr[i] >= x && ceil_dist > (arr[i] - x)) {
            ceiling_index = i;
            ceil_dist = arr[i] - x;
        }
        if (arr[i] <= x && floor_dist > (x - arr[i])) {
            floor_index = i;
            floor_dist = x - arr[i];
        }
    }
    if (floor_dist == INT_MAX)
        cout << "Floor not found" << endl;
    else
        cout << "Floor value is " << arr[floor_index] << endl;
    if (ceil_dist == INT_MAX)
        cout << "Ceiling not found" << endl;
    else
        cout << "Ceil value is " << arr[ceiling_index] << endl;
}

int main() {
    int arr[] = {5, 6, 8, 9, 6, 5, 5, 6};
    int n = sizeof(arr) / sizeof(int);
    int x = 7;
    floorCeilingPair(arr, n, x);
}

আউটপুট

Floor value is 6 Ceil value is 8
  1. C++ ব্যবহার করে সমান্তর ও জ্যামিতিক গড় থেকে হারমোনিক গড় বের করা

  2. C++-এ BST থেকে ফ্লোর এবং সিলিং মান বের করা

  3. C++ প্রোগ্রাম: আনসোর্টেড দুটি অ্যারের ইউনিয়ন ও ইন্টারসেকশন

  4. C++-এ সিল (ceil) এবং ফ্লোর (floor) ফাংশন