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

ความแตกต่างสูงสุดของดัชนี (i, j) ที่ A[i][j] =0 ในเมทริกซ์ที่กำหนดใน C ++


เราได้รับเมทริกซ์ขนาด n x n และเงื่อนไขที่ a[i][j] =0 และภารกิจคือการคำนวณผลต่างสูงสุดของดัชนีที่มี a[i][ j] =0 ดังนั้น เราสามารถระบุได้อย่างชัดเจนว่าต้องมีศูนย์อย่างน้อยหนึ่งศูนย์ในเมทริกซ์

ป้อนข้อมูล

int matrix[][] = {
   {0, 1, 1},
   {0, 0, 0},
   {4, 5, 1}}

ผลผลิต −ผลต่างสูงสุดของดัชนี (i, j) โดยที่ A[i][j] =0 ในเมทริกซ์ที่กำหนดคือ −

คำอธิบาย − เรามีองค์ประกอบ 0 ที่เมทริกซ์[0][0], เมทริกซ์[1][0], เมทริกซ์[1][1] และเมทริกซ์[1][2] ดังนั้นความแตกต่างสูงสุดของดัชนีจะอยู่ที่เมทริกซ์[1][0] ซึ่งมีองค์ประกอบ 0 ดังนั้นความแตกต่างสูงสุดคือ 1

ป้อนข้อมูล

int matrix[][] = {
   {0, 1, 1},
   {0, 2, 9},
   {4, 0, 1}}

ผลผลิต − ผลต่างสูงสุดของดัชนี (i, j) โดยที่ A[i][j] =0 ในเมทริกซ์ที่กำหนดคือ −

คำอธิบาย − เรามีองค์ประกอบ 0 ที่ matrix[0][0], matrix[1][0] และ matrix[2][1] ดังนั้นความแตกต่างสูงสุดของดัชนีจะอยู่ที่เมทริกซ์[1][0] และเมทริกซ์[2][1] ซึ่งมีองค์ประกอบ 0 ดังนั้นความแตกต่างสูงสุดคือ 1

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ป้อนเมทริกซ์ที่ควรมีอย่างน้อย 1 ตัวในดัชนีใด ๆ

  • กำหนดขนาดสูงสุดของแถวและคอลัมน์ เช่น ขนาด n x n

  • ใช้ตัวแปรชั่วคราวที่จะเก็บค่าความแตกต่างสูงสุด

  • เริ่มวนรอบสำหรับตั้งแต่ 0 ถึง row_size

  • ภายในลูป ให้เริ่มลูปใหม่ For จาก 0 ถึง col_size

  • ตรวจสอบ IF matrix[i][j] =0

  • จากนั้นตั้งค่าสูงสุดเป็นค่าสูงสุดเป็นส่วนต่างระหว่างดัชนี

  • ส่งคืนค่าสูงสุด

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
#define row 3
#define col 3
//find maximum difference
int maximum(int matrix[row][col]){
   int max_val = 0;
   for (int i = 0; i < row; i++){
      for (int j = 0; j < col; j++){
         if (matrix[i][j] == 0){
            max_val = max(max_val, abs(i - j));
         }
      }
   }
   return max_val;
}
int main(){
   int matrix[row][col] = {
      { 1, 2, 0},
      { 0, 4, 0},
      { 0, 1, 0}};
   cout<<"Maximum difference of indices with A[i][j] = 0 is: "<<maximum(matrix);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -

Maximum difference of indices with A[i][j] = 0 is: 2