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

C++-এ ম্যাট্রিক্সে দেওয়া গুণফলের জোড়া আছে কিনা চেক করা

আমাদের একটি N x M অর্ডারের ম্যাট্রিক্স আছে। এবং একটি গুণফল K। কাজ হল চেক করা যে ম্যাট্রিক্সে দেওয়া গুণফলের জোড়া আছে কিনা।

উদাহরণস্বরূপ, একটি ম্যাট্রিক্স:

1234
5678
9101112
13141516

যদি K = 42 হয়, তবে একটি জোড়া আছে: (6, 7)

এটি সমাধান করতে হ্যাশিং ব্যবহার করব। ম্যাট্রিক্সের সব উপাদান নিয়ে হ্যাশ টেবিল বানাব। ম্যাট্রিক্স ট্রাভার্স করব, ট্রাভার্স করার সময় চেক করব বর্তমান উপাদানটি দিয়ে দেওয়া গুণফল বিভাজ্য কিনা, এবং ভাগফলও হ্যাশ টেবিলে আছে কিনা। শর্ত:

(k % matrix[i][j] == 0) এবং hash table-এ k/matrix[i][j] আছে।

যদি পাওয়া যায়, true রিটার্ন করুন, অন্যথায় বর্তমান উপাদান হ্যাশ টেবিলে ইনসার্ট করুন। কোনো জোড়া না পেলে false রিটার্ন করুন।

উদাহরণ কোড

#include <iostream>
#include <unordered_set>
#define N 4
#define M 4
using namespace std;

bool isPairPresent(int matrix[N][M], int K) {
    unordered_set<int> s;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            if ((K % matrix[i][j] == 0) && (s.find(K / matrix[i][j]) != s.end())) {
                return true;
            } else {
                s.insert(matrix[i][j]);
            }
        }
    }
    return false;
}

int main() {
    int matrix[N][M] = {{1, 2, 3, 4},
                        {5, 6, 7, 8},
                        {9, 10, 11, 12},
                        {13, 14, 15, 16}};
    int k = 42;
    if (isPairPresent(matrix, k) == false)
        cout << "NO PAIR EXIST";
    else
        cout << "Pair is present";
    return 0;
}

আউটপুট

Pair is present
  1. C++-এ দেওয়া ম্যাট্রিক্স ম্যাজিক স্কোয়ার কিনা তা যাচাই করা

  2. C++-এ একটি ম্যাট্রিক্স স্পার্স (sparse) কিনা তা যাচাই করা

  3. C++-এ একটি ম্যাট্রিক্স সিমেট্রিক কিনা তা যাচাই করার প্রোগ্রাম

  4. C++-এ আইডেমপটেন্ট ম্যাট্রিক্স যাচাই করার প্রোগ্রাম