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

C++の特別な行列でxに等しいエントリをカウントします


正方行列が与えられた場合、mat[][]行列の要素をmemat[i] [j] =i * jとすると、タスクは次の要素の数を数えることです。行列はxに等しい。

行列は、数値または要素が行と列として表される2次元配列のようなものです。

だから、例の助けを借りて問題の解決策を理解しましょう-

入力

matrix[row][col] = {
   {1, 2, 3},
   {3, 4, 3},
   {3, 4, 5}};
x = 3

出力

Count of entries equal to x in a special matrix: 4

入力

matrix[row][col] = {
   {10, 20, 30},
   {30, 40, 30},
   {30, 40, 50}};
x = 30

出力

Count of entries equal to x in a special matrix: 4

以下のプログラムで使用されるアプローチは次のとおりです

  • 行列mat[][]とxを入力値とします。

  • 関数カウントでは、エントリ数をカウントします。

  • mat [i] [j] ==xの値を見つけたら、マトリックス全体をトラバースしてから、カウントを1ずつ増やします。

  • countの値を返し、結果として出力します。

#include<bits/stdc++.h>
using namespace std;
#define row 3
#define col 3
//count the entries equal to X
int count (int matrix[row][col], int x){
   int count = 0;
   // traverse and find the factors
   for(int i = 0 ;i<row;i++){
      for(int j = 0; j<col; j++){
         if(matrix[i][j] == x){
            count++;
         }
      }
   }
   // return count
   return count;
}
int main(){
   int matrix[row][col] = {
      {1, 2, 3},
      {3, 4, 3},
      {3, 4, 5}
   };
   int x = 3;
   cout<<"Count of entries equal to x in a special matrix: "<<count(matrix, x);
   return 0;
}

出力

上記のコードを実行すると、次の出力が得られます-

Count of entries equal to x in a special matrix: 4

  1. C++でマトリックスをトラバースする方法の数を数えます

    次元が行X列の2D行列が与えられます。目標は、セル0,0からセル行までマトリックスをトラバースできる方法の数を数えることです。列は右と下の移動のみを使用します。つまり、最初の移動は0,0から0.1(下)または1,0になります。 (右)1,1(対角)ではありません。 例 入力 col = 2; row = 4 出力 Count of number of ways to traverse a Matrix are: 4 説明 セル0,0から2,4に到達する方法が示されています- 入力 col = 4; row = 3 出力 Count of number of ways to trav

  2. C++でマンハッタン距離に等しい距離のパスをカウントします

    2D座標系上の2つの点を(x1、y1)および(x2、y2)として表す変数x1、x2、y1、y2が与えられます。目標は、これら2つのポイント間のマンハッタン距離に等しい距離を持つすべてのパスを見つけることです。 マンハッタン距離 マンハッタン2点(x1、y1)と(x2、y2)の間の距離は- MD =| x1 – x2 | + | y1 – y2 | A =| x1 –x2|を取りましょうおよびB=| y1 – y2 | マンハッタン距離がMDに等しいすべてのパスでは、エッジが(A + B)としてカウントされます。水平エッジとB垂直エッジ。したがって、2つのグループに分割された(A +