यहां हम देखेंगे कि किसी दिए गए मैट्रिक्स के दो विकर्णों (प्राथमिक और द्वितीयक) के योग का अंतर कैसे प्राप्त किया जाता है। मान लीजिए हमारे पास N x N क्रम का एक मैट्रिक्स है, हमें प्राथमिक और द्वितीयक विकर्णों का योग निकालना है, फिर उनका अंतर लेना है। प्राथमिक विकर्ण प्राप्त करने के लिए, हम जानते हैं कि पंक्ति सूचकांक (row index) और स्तंभ सूचकांक (column index) एक साथ बढ़ते हैं। द्वितीयक विकर्ण के लिए, पंक्ति सूचकांक और स्तंभ सूचकांक का मान इस सूत्र द्वारा बढ़ता है: row_index = n – 1 – col_index। योग प्राप्त करने के बाद, उनका अंतर लेकर परिणाम लौटाया जाता है।
उदाहरण
#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);
}
// Driver 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);
}
आउटपुट
Difference of the sum of two diagonals: 15