Giới thiệu
Trong bài viết này, chúng ta sẽ tìm hiểu cách tính tổng các đường chéo của ma trận. Ma trận có sự sắp xếp hàng và cột. Đường chéo chính (principal diagonal) đi từ góc trên trái đến góc dưới phải. Đường chéo phụ (secondary diagonal) đi từ góc dưới trái đến góc trên phải.
Minh họa
Đầu vào:
The input matrix: 4 5 6 7 1 7 3 4 11 12 13 14 23 24 25 50
Đầu ra mong muốn:
Sum principal diagonal elements: 74 Sum of secondary diagonal elements: 45
Thuật toán
- Bắt đầu
- Khai báo ma trận số nguyên
input_matrix - Khởi tạo giá trị
- Duyệt ma trận bằng 2 vòng lặp
for: cộng đường chéo chính nếu i == j, đường chéo phụ nếu i + j == matrix_size - 1 - Hiển thị kết quả
- Kết thúc
Ví dụ 1: Triển khai trong hàm main
public class MatrixDiagonals {
static public void main(String[] args) {
int[][] input_matrix = {
{ 4, 5, 6, 7 },
{ 1, 7, 3, 4 },
{ 11, 12, 13, 14 },
{ 23, 24, 25, 50 }
};
int matrix_size = 4;
System.out.println("The matrix is defined as : ");
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++)
System.out.print(input_matrix[i][j] + " ");
System.out.print("\n");
}
int principal_diagonal = 0, secondary_diagonal = 0;
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++) {
if (i == j)
principal_diagonal += input_matrix[i][j];
if ((i + j) == (matrix_size - 1))
secondary_diagonal += input_matrix[i][j];
}
}
System.out.println("\n The sum of principal diagonal elements of the matrix is: " + principal_diagonal);
System.out.println("\n The sum of secondary diagonal elements of the matrix is: " + secondary_diagonal);
}
}
Đầu ra
The matrix is defined as : 4 5 6 7 1 7 3 4 11 12 13 14 23 24 25 50 The sum of principal diagonal elements of the matrix is: 74 The sum of secondary diagonal elements of the matrix is: 45
Ví dụ 2: Tách hàm static (OOP)
public class MatrixDiagonals {
static void diagonals_sum(int[][] input_matrix, int matrix_size) {
int principal_diagonal = 0, secondary_diagonal = 0;
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++) {
if (i == j)
principal_diagonal += input_matrix[i][j];
if ((i + j) == (matrix_size - 1))
secondary_diagonal += input_matrix[i][j];
}
}
System.out.println("\n The sum of principal diagonal elements of the matrix is: " + principal_diagonal);
System.out.println("\n The sum of secondary diagonal elements of the matrix is: " + secondary_diagonal);
}
static public void main(String[] args) {
int[][] input_matrix = {
{ 4, 5, 6, 7 },
{ 1, 7, 3, 4 },
{ 11, 12, 13, 14 },
{ 23, 24, 25, 50 }
};
int matrix_size = 4;
System.out.println("The matrix is defined as : ");
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++)
System.out.print(input_matrix[i][j] + " ");
System.out.print("\n");
}
diagonals_sum(input_matrix, matrix_size);
}
}
Đầu ra
The matrix is defined as : 4 5 6 7 1 7 3 4 11 12 13 14 23 24 25 50 The sum of principal diagonal elements of the matrix is: 74 The sum of secondary diagonal elements of the matrix is: 45