크기가 n x n인 행렬과 a[i][j] =0이라는 조건이 주어지고 작업은 a[i][ j] =0. 따라서 행렬에는 최소한 하나의 0이 있어야 함을 분명히 말할 수 있습니다.
입력
int matrix[][] = { {0, 1, 1}, {0, 0, 0}, {4, 5, 1}}
출력 − 주어진 행렬에서 A[i][j] =0인 인덱스(i, j)의 최대 차이는 -
설명 - 우리는 행렬[0][0], 행렬[1][0], 행렬[1][1] 및 행렬[1][2]에 요소 0이 있습니다. 따라서 인덱스의 최대 차이는 요소가 0인 행렬[1][0]에 있습니다. 따라서 최대 차이는 1입니다.
입력
int matrix[][] = { {0, 1, 1}, {0, 2, 9}, {4, 0, 1}}
출력 - 주어진 행렬에서 A[i][j] =0이 되는 인덱스(i, j)의 최대 차이는 -
설명 - 우리는 행렬[0][0], 행렬[1][0] 및 행렬[2][1]에 요소 0을 가지고 있습니다. 따라서 인덱스의 최대 차이는 요소 0을 갖는 matrix[1][0]과 matrix[2][1]에 있습니다. 따라서 최대 차이는 1입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
모든 인덱스에서 적어도 하나의 1을 포함해야 하는 행렬을 입력하십시오.
-
행과 열의 최대 크기, 즉 n x n의 크기를 정의합니다.
-
최대 차이 값을 저장할 임시 변수를 가져옵니다.
-
0부터 row_size
까지 루프 시작 -
루프 내에서 0에서 col_size
까지 For 또 다른 루프를 시작합니다. -
IF 행렬[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