हमें एक मैट्रिक्स दी गई है जो पंक्तियों और स्तंभों वाली एक 2-D सरणी है और कार्य सभी पंक्तियों और स्तंभों के योग की गणना करना है जैसे कि यह प्रमुख या द्वितीयक मैट्रिक्स के योग के बराबर हो।
इनपुट -
int arr[row][col] = {
{ 4, 1, 7 },
{ 10, 3, 5 },
{ 2, 2, 11 }
}
आउटपुट - विकर्ण योग के बराबर योग वाली पंक्तियों/स्तंभों की संख्या - 2
व्याख्या -
प्रमुख विकर्ण का योग है: 4 + 3 + 11 = 18 और द्वितीयक विकर्ण का योग है: 7 + 3 + 2 = 12। पंक्तियों के योग हैं: 4 + 1 + 7 = 12 (सही), 10 + 3 + 5 = 18 (सही), 2 + 2 + 11 = 15 (गलत) और स्तंभों के योग हैं: 4 + 10 + 2 = 16 (गलत), 1 + 3 + 2 = 6 (गलत), 7 + 5 + 11 = 23 (गलत)। इसलिए, प्रमुख विकर्ण और द्वितीयक विकर्ण के योग से मेल खाने वाली पंक्तियों/स्तंभों की संख्या - 2
उपयोग किया गया दृष्टिकोण
- पंक्ति आकार और स्तंभ आकार की एक 2-D सरणी बनाकर मैट्रिक्स बनाएं
- प्रमुख और द्वितीयक मैट्रिक्स के लिए चर बनाएं। साथ ही, गिनती संग्रहीत करने के लिए एक काउंट चर
- i से 0 से col तक और j से col-1 से 0 तक लूप FOR शुरू करें, i बढ़ाएं और j घटाएं
- लूप के अंदर, प्रमुख को प्रमुख + matrix[i][i] और द्वितीयक को द्वितीयक + matrix[i][j] के रूप में सेट करें
- i से 0 से col तक लूप FOR शुरू करें
- लूप के अंदर, row को 0 और col को 0 सेट करें और लूप के अंदर, j से 0 से col तक एक और लूप FOR शुरू करें
- लूप के अंदर, row को row + matrix[i][j] के रूप में सेट करें
- लूप के अंदर, j से 0 से col तक एक और लूप FOR शुरू करें
- लूप के अंदर, col को col + matrix[j][i] के रूप में सेट करें
- लूप के अंदर, जांचें IF (row == प्रमुख) || (row == द्वितीयक) तो काउंट को 1 से बढ़ाएं
- लूप के अंदर, जांचें IF (col == प्रमुख) || (col == द्वितीयक) तो काउंट को 1 से बढ़ाएं
- काउंट लौटाएं
- परिणाम प्रिंट करें।
C++ कार्यान्वयन
#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