কম্পিউটার

C++ ব্যবহার করে একটি সাজানো বিন্যাসে মেঝে এবং ছাদ খুঁজুন।


এখানে আমরা দেখব কিভাবে একটি সাজানো বিন্যাসে মেঝে এবং সিলিং খুঁজে বের করা যায়। মেঝের মান হল বড় উপাদান যা 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. সি++-এ সিল এবং মেঝের ফাংশন