C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でマトリックス内の空洞の数を見つける


1つの行列が与えられていると考えてください。マトリックス内の空洞の数を見つける必要があります。 1つの要素は、それを囲む他のすべての要素がその要素よりも大きい場合にキャビティとして示されます。したがって、行列が-

のような場合
4 5 6
7 1 5
4 5 6

したがって、出力は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++プログラム

    これは、グラフ行列の逆行列を見つけるためのC++プログラムです。行列の逆行列は、行列が非特異である場合にのみ存在します。つまり、行列式は0であってはなりません。行列の逆行列は多くの方法で見つけることができます。ここでは、随伴行列とその行列式を使用して、グラフ行列の逆行列を見つけます。例に含まれる手順 Begin    function INV() to get the inverse of the matrix:    Call function DET().    Call function ADJ().    

  2. C++のCHAR_BIT

    CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() {    int x = 28;    int a = CHAR_BIT*sizeof(x);    stack<bool> s;    cout << "T