Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลคูณสูงสุดขององค์ประกอบที่อยู่ติดกัน 4 รายการในเมทริกซ์ใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาผลคูณสูงสุดขององค์ประกอบที่อยู่ติดกัน 4 รายการในเมทริกซ์

สำหรับสิ่งนี้เราจะได้รับเมทริกซ์สี่เหลี่ยมจัตุรัส หน้าที่ของเราคือค้นหาผลคูณสูงสุดขององค์ประกอบที่อยู่ติดกันสี่ตัว ซึ่งสามารถอยู่ด้านบน ล่าง ขวา ซ้าย หรือแนวทแยง

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
const int n = 5;
//finding maximum product
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;
         }
         //checking in vertical row
         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;
         }
         //checking in diagonal
         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