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

ম্যাট্রিক্সে ক্যাবিটির সংখ্যা বের করা C++-তে


একটি ম্যাট্রিক্স দেওয়া আছে। আমাদের ম্যাট্রিক্সে ক্যাবিটির সংখ্যা বের করতে হবে। একটি উপাদান ক্যাবিটি হিসেবে চিহ্নিত হবে যখন তার চারপাশের সব উপাদান সেটির চেয়ে বড় হবে। তাই যদি ম্যাট্রিক্সটি হয় -

456
715
456

তবে আউটপুট হবে 1।

আমরা সহজে চारोंপাশের উপাদানগুলো চেক করে সিদ্ধান্ত নিতে পারি।

উদাহরণ

#include <iostream>
#define MAX 100
using namespace std;

int numberOfCavities(int array[][MAX], int n) {
    int arr[n + 2][n + 2];
    int count = 0;
    for (int i = 0; i < n + 2; i++) {
        for (int j = 0; j < n + 2; j++) {
            if ((i == 0) || (j == 0) || (i == n + 1) || (j == n + 1))
                arr[i][j] = INT_MAX;
            else
                arr[i][j] = array[i - 1][j - 1];
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if ((arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i][j - 1])
                && (arr[i][j] < arr[i][j + 1]) && (arr[i][j] < arr[i - 1][j - 1]) && (arr[i][j] < arr[i + 1][j + 1])
                && (arr[i][j] < arr[i - 1][j + 1]) && (arr[i][j] < arr[i + 1][j - 1]))
                count++;
        }
    }
    return count;
}

int main() {
    int a[][MAX] = { { 4, 5, 6 }, { 7, 1, 5 }, { 4, 5, 6 }};
    int n = 3;
    cout << "Number of cavities: " << numberOfCavities(a, n);
}

আউটপুট

Number of cavities: 1

  1. C++-এ অ্যারিথমেটিক নম্বর

  2. C++-এ 유리 সংখ্যার LCM খুঁজে বের করা

  3. সি++ প্রোগ্রাম: গ্রাফ ম্যাট্রিক্সের বিপরীত (Inverse) নির্ণয়

  4. C++-এ CHAR_BIT