কম্পিউটার

অ্যারেতে জোড়া খুঁজুন যার যোগফল ইতিমধ্যেই C++ অ্যারেতে বিদ্যমান


এই সমস্যায়, আমাদের একটি অ্যারে দেওয়া হয়েছে যা N পূর্ণসংখ্যার সমন্বয়ে গঠিত। আমাদের কাজ হল একটি অ্যারেতে জোড়া খুঁজে বের করা যার যোগফল ইতিমধ্যেই অ্যারেতে বিদ্যমান। আমাদের যোগফলের মান =অ্যারের একটি মান

সহ জোড়া খুঁজে বের করতে হবে

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

arr[] = {1, 2, 4, 6, 7}

আউটপুট

(1, 6), (2, 4)

ব্যাখ্যা

জোড়ার জন্য (1, 6), মানের সমষ্টি হল 7 যা অ্যারেতে উপস্থিত।

জোড়ার জন্য (2, 4), মানের সমষ্টি 6 যা অ্যারেতে উপস্থিত।

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হল অ্যারের উপাদান ব্যবহার করে সম্ভাব্য সমস্ত জোড়া খুঁজে বের করা। তারপর পারিরের মানের যোগফল নির্ণয় করুন। অ্যারেতে এই সমষ্টির মান অনুসন্ধান করুন, যদি উপস্থিত থাকে তবে মুদ্রণ করুন।

এছাড়াও, জোড়া গণনার সংখ্যার জন্য আমাদের একটি কাউন্টার থাকবে। এবং যদি এটি 0 হয়, আমরা কোন জোড়া খুঁজে পাওয়া যায় না।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;
void findSumPairsArr(int arr[], int n){
   int pairCount = 0;
   for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
         for (int k = 0; k < n; k++) {
            if (arr[i] + arr[j] == arr[k]) {
               cout<<"( "<<arr[i]<<", "<<arr[j]<<" ), sum = "<<(arr[i] + arr[j])<<"\n";
               pairCount++;
            }
         }
      }
   }
   if (!pairCount)
      cout<<"No Such Pairs found !";
}
int main() {
   int arr[] = { 1, 2, 4, 6, 7 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Pairs in array whose sum already exists in array : \n";
   findSumPairsArr(arr, n);
   return 0;
}

আউটপুট

অ্যারেতে জোড়া যার যোগফল আগে থেকেই অ্যারে-

-এ বিদ্যমান
( 1, 6 ), sum = 7
( 2, 4 ), sum = 6

আরেকটি পদ্ধতি যা আরও কার্যকর হতে পারে তা হল একটি হ্যাশ টেবিল ব্যবহার করে সমস্যার সমাধান করা। আমরা সমস্ত প্যারিস পরীক্ষা করব এবং তারপর তাদের যোগফল গণনা করব এবং অ্যারেতে এটি বিদ্যমান আছে কিনা তা পরীক্ষা করব এবং এটির খোঁজ রাখব। পেয়ার কাউন্ট 0 হলে, প্রিন্ট করুন "এমন কোন জোড়া পাওয়া যায়নি!"।

এখানে, সি-তে একটি হ্যাশ টেবিলের বাস্তবায়ন unordered_set ব্যবহার করে করা হয়।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void findSumPairsArr(int arr[], int n) {
   unordered_set<int> HT;
   for (int i = 0; i < n; i++)
      HT.insert(arr[i]);
   int pairCount = 0;
   for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
         if (HT.find(arr[i] + arr[j]) != HT.end()) {
            cout<<"( "<<arr[i]<<", "<<arr[j]<<" ), sum =
            "<<(arr[i] + arr[j])<<"\n";
            pairCount ++;
         }
      }
   }
   if (!pairCount)
   cout<<"No Such Pairs found !";
}
int main() {
   int arr[] = {1, 2, 4, 6, 7 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Pairs in array whose sum already exists in array : \n";
   findSumPairsArr(arr, n);
   return 0;
}

আউটপুট

অ্যারেতে জোড়া যার যোগফল আগে থেকেই অ্যারে-

-এ বিদ্যমান
( 1, 6 ), sum = 7
( 2, 4 ), sum = 6

  1. অ্যারেতে সবচেয়ে বড় ডি খুঁজুন যেমন সি++ এ a + b + c =d

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

  3. C++ এ একটি অ্যারের সমস্ত স্বতন্ত্র উপসেট (বা পরবর্তী) যোগফল খুঁজুন

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