কম্পিউটার

অ্যারেতে সমস্ত জোড়া (a,b) এবং (c,d) খুঁজুন যা C++ এ ab =cd সন্তুষ্ট করে


ধরুন আমাদের একটি অ্যারে রয়েছে, সেই অ্যারে থেকে আমাদের দুটি জোড়া (a, b) এবং (c, d) বেছে নিতে হবে, যেমন ab =cd। ধরুন অ্যারে A =[3, 4, 7, 1, 2, 9, 8]। আউটপুট জোড়া হল (4, 2) এবং (1, 8)। এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • এর জন্য i :=0 থেকে n-1, কর
    • j এর জন্য :=i + 1 থেকে n-1, do
      • পণ্য পান =arr[i] * arr[j]
      • হ্যাশ টেবিলে পণ্যটি উপস্থিত না থাকলে, হ্যাশ[প্রোডাক্ট] :=(i, j)
      • হ্যাশ টেবিলে পণ্য উপস্থিত থাকলে, পূর্ববর্তী এবং বর্তমান উপাদানগুলি প্রিন্ট করুন।

উদাহরণ

#include <iostream>
#include <unordered_map>
using namespace std;
void displayPairs(int arr[], int n) {
   bool found = false;
   unordered_map<int, pair < int, int > > Hash;
   for (int i=0; i<n; i++) {
      for (int j=i+1; j<n; j++) {
         int prod = arr[i]*arr[j];
         if (Hash.find(prod) == Hash.end())
            Hash[prod] = make_pair(i,j);
         else{
            pair<int,int> pp = Hash[prod];
            cout << "(" << arr[pp.first] << ", " << arr[pp.second] << ") and (" << arr[i]<<", "<<arr[j] << ")"<<endl; found = true;
         }
      }
   }
   if (found == false)
   cout << "No pairs have Found" << endl;
}
int main() {
   int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
   int n = sizeof(arr)/sizeof(int);
   displayPairs(arr, n);
}

আউটপুট

(1, 6) and (2, 3)
(1, 8) and (2, 4)
(2, 6) and (3, 4)
(3, 8) and (4, 6)

  1. C++-এ কমপক্ষে দুটি বড় উপাদান আছে এমন অ্যারেতে সমস্ত উপাদান খুঁজুন

  2. C++ এ একটি অ্যারেতে একটি স্থানীয় মিনিমা খুঁজুন

  3. এমন উপাদানগুলি খুঁজুন যা প্রথম অ্যারেতে উপস্থিত রয়েছে এবং C++ এ দ্বিতীয়টিতে নেই

  4. একটি অ্যারেতে সমস্ত জোড়া (a, b) খুঁজুন যেমন একটি % b =k C++ এ