কম্পিউটার

C++ এ জ্যামিতিক অগ্রগতিতে অনুপস্থিত নম্বর খুঁজুন


ধরুন আমাদের একটি অ্যারে আছে যা জ্যামিতিক অগ্রগতির উপাদানগুলিকে ক্রমানুসারে উপস্থাপন করে। একটি উপাদান অনুপস্থিত. আমাদের অনুপস্থিত উপাদানটি খুঁজে বের করতে হবে। সুতরাং যদি arr =[1, 3, 27, 81], আউটপুট 9 হয়, যেমন 9 অনুপস্থিত।

বাইনারি অনুসন্ধান ব্যবহার করে, আমরা এই সমস্যার সমাধান করতে পারি। আমরা মিডল এলিমেন্টে যাব, তারপর পরীক্ষা করে দেখব যে মাঝামাঝি এবং মাঝামাঝির পাশের অনুপাতটি সাধারণ অনুপাতের সমান কি না। যদি তা না হয়, তাহলে অনুপস্থিত উপাদানটি সূচকের মধ্য এবং মধ্য + 1-এর মধ্যে উপস্থিত থাকে। যদি মধ্যবর্তী উপাদানটি GP-এর n/2 তম উপাদান হয়, তাহলে অনুপস্থিত উপাদানটি ডান অর্ধে থাকে, অন্যথায় বাম অর্ধেক।

উদাহরণ

#include <iostream>
#include <cmath>
using namespace std;
class Progression {
   public:
   int missingUtil(int arr[], int left, int right, int ratio) {
      if (right <= left)
         return INT_MAX;
      int mid = left + (right - left) / 2;
      if (arr[mid + 1] - arr[mid] != ratio)
         return (arr[mid] * ratio);
      if (mid > 0 && arr[mid] / arr[mid - 1] != ratio)
         return (arr[mid - 1] * ratio);
      if (arr[mid] == arr[0] * pow(ratio, mid))
         return missingUtil(arr, mid + 1, right, ratio);
         return missingUtil(arr, left, mid - 1, ratio);
   }
   int missingElement(int arr[], int n) {
      int ratio = pow(arr[n-1]/arr[0], 1.0/n);
         return missingUtil(arr, 0, n - 1, ratio);
   }
};
int main() {
   Progression pg;
   int arr[] = {1, 3, 27, 81};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "The missing element is: " << pg.missingElement(arr, n);
}

আউটপুট

The missing element is: 9

  1. C++ এ সর্বাধিক পণ্যের চতুর্গুণ সংখ্যা খুঁজুন

  2. C++ এ d সংখ্যা আছে এমন সংখ্যাটি খুঁজুন

  3. একটি সংখ্যায় সংখ্যার গণনা খুঁজুন যা সংখ্যাটিকে C++ এ ভাগ করে

  4. C++ ব্যবহার করে একটি অ্যারের মধ্যে একটি সংখ্যার ফ্রিকোয়েন্সি খুঁজুন।