কম্পিউটার টিউটোরিয়াল

দেওয়া পার্থক্যের সাথে একটি জোড়া খুঁজে বের করা C++-এ

মনে করুন একটি অ্যারে A আছে, যেখানে n সংখ্যক ভিন্ন উপাদান রয়েছে। আমাদের কাজ হল অ্যারে A থেকে একটি জোড়া (x, y) খুঁজে বের করা, যাতে x এবং y-এর পার্থক্য দেওয়া পার্থক্য d-এর সমান হয়। উদাহরণস্বরূপ, যদি উপাদানগুলোর তালিকা A = [10, 15, 26, 30, 40, 70] হয় এবং দেওয়া পার্থক্য 30 হয়, তবে জোড়াগুলো হবে (10, 40) এবং (30, 70)।

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

এই সমস্যাটি সমাধান করতে আমরা ধরে নেব অ্যারেটি সর্ট করা আছে। তারপর বাম দিক থেকে শুরু করে দুটি পয়েন্টার ব্যবহার করব। প্রাথমিকভাবে প্রথম পয়েন্টার 'i' প্রথম উপাদানকে নির্দেশ করবে এবং দ্বিতীয় পয়েন্টার 'j' দ্বিতীয় উপাদানকে নির্দেশ করবে।

  • যদি A[j] – A[i] দেওয়া পার্থক্যের সমান হয়, তবে জোড়াটি প্রিন্ট করুন।
  • যদি A[j] – A[i] < দেওয়া পার্থক্য হয়, তবে j কে 1 বাড়ান।
  • অন্যথায় i কে 1 বাড়ান।

উদাহরণ কোড

#include <iostream>
using namespace std;

void displayPair(int arr[], int size, int n) {
    int i = 0;
    int j = 1;
    while (i < size && j < size) {
        if (i != j && arr[j] - arr[i] == n) {
            cout << "(" << arr[i] << ", " << arr[j] << ")" << endl;
            i++; j++;
        }
        else if (arr[j] - arr[i] < n)
            j++;
        else
            i++;
    }
}

int main() {
    int arr[] = {10, 15, 26, 30, 40, 70};
    int size = sizeof(arr)/sizeof(arr[0]);
    int n = 30;
    displayPair(arr, size, n);
    return 0;
}

আউটপুট

(10, 40)
(30, 70)
  1. ব্যালেন্সড BST-এ দেওয়া সমের সাথে একটি জোড়া খুঁজে বের করা C++-তে

  2. C++-এ দেওয়া ইন্ডেক্সের Nটি ফিবোনাচ্চি সংখ্যার GCD বের করা

  3. C++-এ অ্যারেতে সর্বোচ্চ GCD वाली পেয়ার বের করা

  4. C++-এ দিয়ে गये GCD এবং LCM থেকে যেকোনো পেয়ার খুঁজে বের করা