2D 정방 행렬을 입력으로 제공합니다. 목표는 1차 대각선과 2차 대각선 모두에서 공통적인 요소를 찾는 것입니다. 입력 행렬이
인 경우1 2 3 2 2 4 1 4 7
그런 다음 기본 대각선은 1 2 7이고 보조 대각선은 3 2 1입니다. 공통 요소는 2입니다.
둘 다에는 항상 하나 이상의 공통 요소가 있습니다.
예시
입력 - 행렬[][5] ={{1, 2, 1}, {4, 1, 6}, {1, 8, 1}};
출력 − 대각선의 행별 공통 요소:3
설명 − 행렬은 다음과 같습니다.
1 2 1 4 1 6 1 8 1
기본 대각선=1 1 1, 보조 대각선=1 1 1
3가지 값 모두 공통입니다. 개수=3
입력 - 행렬[][5] ={{1, 4, 4, 1}, {3, 4, 4, 6}, {1, 1, 1, 4}, {1, 9, 9, 2}};
출력 − 대각선의 행별 공통 요소:3
설명 − 행렬은 다음과 같습니다.
1 4 4 1 3 4 4 6 1 1 1 4 1 9 9 2
기본 대각선=1 4 1 2, 보조 대각선=1 4 1 1
처음 3개의 값은 공통입니다. 개수=3
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
이 접근 방식에서 우리는 먼저 행 0에서 행 방향으로 정방 행렬을 탐색할 것입니다. 각 행에 대해 요소 M[ i ][ i ]가 M[ i ][ size-i-1 ]과 같은지 확인합니다. 그렇다면 두 대각선의 공통 요소는 카운트를 증가시킵니다.
-
입력 행렬 Matrix[][5]를 가져옵니다.
-
크기를 설정합니다.
-
countElement(int mt[][5], int size) 함수는 입력 행렬과 크기를 가져와서 기본 및 보조 대각선 모두에서 공통 값의 개수를 반환합니다.
-
초기 카운트를 0으로 합니다.
-
for 루프를 사용하여 i=0에서 i
로 트래버스 -
mt[i][i] ==mt[i][size-i-1]이면 카운트를 증가시킵니다.
-
마지막에 결과로 카운트를 반환합니다.
-
메인에 결과를 출력하세요.
예시
#include <iostream> using namespace std; int countElement(int mt[][5], int size){ int count = 0; for (int i=0;i<size;i++){ if (mt[i][i] == mt[i][size-i-1]){ count=count+1; } } return count; } int main(){ int Matrix[][5] = {{1, 2, 1}, {4, 1, 6}, {1, 8, 1}}; int size=3; cout<<"Row-wise common elements in diagonals:"<<countElement(Matrix, size); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Row-wise common elements in diagonals:3