C ++中矩阵中4个相邻元素的最大积

在本教程中,我们将讨论一个程序,以查找矩阵中4个相邻元素的最大乘积。

为此,我们将提供一个方矩阵。我们的任务是找到四个相邻元素的最大乘积,它们可以是上,下,右,左或对角线。

示例

#include <bits/stdc++.h>

using namespace std;

const int n = 5;

//寻找最大的产品

int FindMaxProduct(int arr[][n], int n) {

   int max = 0, result;

   for (int i = 0; i < n; i++) {

      for (int j = 0; j < n; j++) {

         if ((j - 3) >= 0) {

            result = arr[i][j] * arr[i][j - 1] * arr[i][j - 2] * arr[i][j - 3];

            if (max < result)

               max = result;

         }

         //在垂直行中检查

         if ((i - 3) >= 0) {

            result = arr[i][j] * arr[i - 1][j] * arr[i - 2][j] * arr[i - 3][j];

            if (max < result)

               max = result;

         }

         //检查对角线

         if ((i - 3) >= 0 && (j - 3) >= 0) { result = arr[i][j] * arr[i - 1][j - 1] * arr[i - 2][j - 2] * arr[i - 3][j - 3];

         if (max < result)

            max = result;

      }

      if ((i - 3) >= 0 && (j - 1) <= 0) {

         result = arr[i][j] * arr[i - 1][j + 1] * arr[i - 2][j + 2] * arr[i - 3][j + 3];

         if (max < result)

            max = result;

         }

      }

   }

   return max;

}

int main() {

   int arr[][5] = {

      {1, 2, 3, 4, 5},

      {6, 7, 8, 9, 1},

      {2, 3, 4, 5, 6},

      {7, 8, 9, 1, 0},

      {9, 6, 4, 2, 3}

   };

   cout << FindMaxProduct(arr, n);

   return 0;

}

输出结果

3024

以上是 C ++中矩阵中4个相邻元素的最大积 的全部内容, 来源链接: utcz.com/z/331356.html

回到顶部