কম্পিউটার

C++ ব্যবহার করে মাঝারি x সমান করতে উপাদানের ন্যূনতম সংখ্যা যোগ করতে হবে।


সমস্যা বিবৃতি

সাইজ n এবং এলিমেন্ট x এর একটি অ্যারে “arr” দেওয়া হয়েছে, কাজ হল মধ্যম x সমান করতে অ্যারেতে যোগ করতে হবে এমন ন্যূনতম সংখ্যক উপাদান খুঁজে বের করা।

n এর দৈর্ঘ্য সহ একটি অ্যারের একটি মধ্যক হল এমন একটি উপাদান যা আমরা উপাদানগুলিকে অ-হ্রাস না হওয়া ক্রমে সাজানোর পরে অবস্থান নম্বর (n-1)/2 দখল করে। উদাহরণস্বরূপ, নীচের অ্যারের মধ্যম হল 20 −

arr1[] ={10, 20, 30, 40}

যদি arr[] ={1, 2, 3} এবং x =4 হয় তাহলে আমাদেরকে 4 সংখ্যা যোগ করতে হবে অর্থাৎ {4, 5, 5, 5} অ্যারেতে 4 এর সমান গড় করতে হবে

অ্যালগরিদম

অ্যালগরিদম খুব সহজ. আমাদের অ্যারেতে একটি সংখ্যা x যোগ করতে হবে যতক্ষণ না অ্যারের মধ্যম x

এর সমান হয়

উদাহরণ

#include <iostream>
#include <algorithm>
using namespace std;
int minNumbersToBeAdded(int *arr, int n, int x){
   sort(arr, arr + n);
   int cnt = 0;
   while (arr[(n - 1)/2] != x) {
      arr[n] = x;
      ++n;
      sort(arr, arr + n);
      ++cnt;
   }
   return cnt;
}
int main(){
   int arr[20] = {1, 2, 3};
   int x = 4;
   int n = 3;
   cout << "Minimum numbers to be added = " << minNumbersToBeAdded(arr, n, x) << endl;
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Minimum numbers to be added = 4

  1. C++ ব্যবহার করে XORকে সর্বোচ্চ করতে ন্যূনতম সংখ্যক উপাদান সরাতে হবে।

  2. C++ ব্যবহার করে অ্যারেটিকে ভালো করার জন্য ন্যূনতম সংখ্যক উপাদান সরানো উচিত।

  3. C++ এ একটি স্ট্রিং প্যালিনড্রোম তৈরি করতে ন্যূনতম সংখ্যক মুছে ফেলা।

  4. C++ ব্যবহার করে সংখ্যার ন্যূনতম যোগফল নির্ণয় করুন।