행과 열이 있는 2차원 배열인 행렬이 주어졌으며 작업은 모든 행과 열의 합을 계산하여 다음과 같도록 하는 것입니다. 주 또는 이차 행렬의 합입니다.
입력 -
int arr[row][col] = { { 4, 1, 7 }, { 10, 3, 5 }, { 2, 2, 11} }
출력 − 합계가 대각선 합계와 같은 행/열의 개수는 &mins입니다. 2
설명 -
주 대각선의 합은 4 + 3 + 11 =18이고 보조 대각선의 합은 7 + 3 + 2 =12입니다. 행의 합은 4 + 1 + 7 =12(TRUE), 10 + 3 + 5 =18입니다. (TRUE), 2 + 2 + 11 =15(FALSE) 및 열의 합은 4 + 10 + 2 =16(FALSE), 1 + 3 + 2 =6(FALSE), 7 + 5 + 11 =23( 거짓). 따라서 주대각선과 보조대각선의 합과 일치하는 행/열의 개수는 -2
입니다.입력 -
int arr[row][col] = { { 1, 2, 3 }, { 4, 5, 2 }, { 7, 9, 10} }
출력 − 합계가 대각선 합계와 같은 행/열의 개수는 − 2
입니다.설명 -
주 대각선의 합은 1 + 5 + 10 =16이고 보조 대각선의 합은 7 + 3 + 5 =15입니다. 행의 합은 1 + 2 + 3 =6(FALSE), 4 + 5 + 2 =11입니다. (FALSE), 7 + 9 + 10 =26(FALSE) 및 열의 합은 7 + 4 + 1 =12(FALSE), 9 + 5 + 2 =16(TRUE), 3 + 2 + 10 =15( 진실). 따라서 주대각선과 보조대각선의 합과 일치하는 행/열의 개수는 -2
입니다.아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
행 크기와 열 크기의 행렬을 형성하는 2차원 배열 만들기
-
주행렬과 이차행렬에 대한 변수를 생성합니다. 또한 카운트를 저장할 카운트 변수
-
루프 FOR i에서 0까지 col까지, j에서 col까지 - 1에서 col까지, i를 증가시키고 j를 감소시킵니다.
-
루프 내에서 principal을 principal + matrix[i][i]로 설정하고 secondary를 secondary + matrix[i][j]
로 설정합니다. -
i부터 0까지 FOR 루프 시작, col까지
-
루프 내에서 row를 0으로 설정하고 col을 0으로 설정하고 루프 내에서 또 다른 루프 FOR를 시작하여 j에서 0까지 col
-
루프 내에서 행을 행 + 행렬[i][j]
로 설정합니다. -
루프 내에서 j에서 0까지 col
까지 FOR 또 다른 루프를 시작합니다. 루프 내에서 col 대 col + matrix[j][i] -
루프 내에서 IF(row ==principal) || (row ==secondary) 그런 다음 카운트를 1 증가시킵니다.
-
루프 내에서 IF(col ==principal) || (col ==secondary) 그런 다음 카운트를 1씩 증가
-
개수 반환
-
결과를 인쇄하십시오.
예
#include <iostream> #define row 3 #define col 3 using namespace std; int diagonal_sum(int matrix[row][col]){ int principal = 0; int secondary = 0; int r = 0; int c = 0; int count = 0; int i = 0, j = 0; for (i = 0, j = col - 1; i < col; i++, j--){ principal += matrix[i][i]; secondary += matrix[i][j]; } for (int i = 0; i < col; i++){ r = 0; c = 0; for (int j = 0; j < col; j++){ r += matrix[i][j]; } for (int j = 0; j < col; j++){ c += matrix[j][i]; } if ((r == principal) || (r == secondary)){ count++; } if ((c == principal) || (c == secondary)){ count++; } } return count; } int main(){ int matrix[row][col] = { { 4, 1, 7 }, { 10, 3, 5 }, { 2, 2, 11}}; cout<<"Count of rows/columns with sum equals to diagonal sum are: "<<diagonal_sum(matrix); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
Count of rows/columns with sum equals to diagonal sum are: 2