Ở đây chúng ta sẽ thấy cách lấy hiệu giữa tổng của hai đường chéo của một ma trận cho trước. Giả sử chúng ta có ma trận cấp N x N, chúng ta phải lấy tổng của đường chéo chính và đường chéo phụ, sau đó lấy hiệu của chúng. Để lấy đường chéo chính, chúng ta biết rằng chỉ số hàng và chỉ số cột tăng đồng thời. Đối với đường chéo thứ hai, giá trị chỉ số hàng và chỉ số cột được tính bằng công thức row_index = n – 1 – col_index. Sau khi có tổng, lấy hiệu và trả về kết quả.
Ví dụ
#include<iostream> #include<cmath> #define MAX 100 using namespace std; int diagonalSumDifference(int matrix[][MAX], int n) { int sum1 = 0, sum2 = 0; for (int i = 0; i < n; i++) { sum1 += matrix[i][i]; sum2 += matrix[i][n-i-1]; } return abs(sum1 - sum2); } // Driven Program int main() { int n = 3; int matrix[][MAX] = { {11, 2, 4}, {4 , 5, 6}, {10, 8, -12} }; cout << "Difference of the sum of two diagonals: " << diagonalSumDifference(matrix, n); }
Kết quả
Difference of the sum of two diagonals: 15