Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में विकर्ण योग के बराबर योग वाली पंक्तियों/स्तंभों की गणना करें


हमें एक मैट्रिक्स दिया गया है जो पंक्तियों और स्तंभों वाली 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 (गलत), 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-डी सरणी बनाएं

  • प्रिंसिपल और सेकेंडरी मैट्रिक्स के लिए वैरिएबल बनाएं। साथ ही, गिनती को स्टोर करने के लिए एक गिनती चर

  • I से 0 तक col और j से col-1 तक col के लिए लूप प्रारंभ करें, i को बढ़ाएँ और j को घटाएँ

  • लूप के अंदर, प्रिंसिपल को प्रिंसिपल + मैट्रिक्स[i][i] और सेकेंडरी को सेकेंडरी + मैट्रिक्स[i][j]

    के रूप में सेट करें
  • I से 0 तक col तक के लिए लूप प्रारंभ करें

  • लूप के अंदर, पंक्ति को 0 पर सेट करें और col को 0 पर और लूप के अंदर, j से 0 तक col तक एक और लूप प्रारंभ करें

  • लूप के अंदर, पंक्ति को पंक्ति + मैट्रिक्स के रूप में सेट करें[i][j]

  • लूप के अंदर, j से 0 तक col तक एक और लूप प्रारंभ करें

    लूप के अंदर, col से col + मैट्रिक्स[j][i]
  • लूप के अंदर, IF (पंक्ति ==प्रिंसिपल) की जाँच करें || (पंक्ति ==सेकेंडरी) फिर गिनती को 1 से बढ़ाएं

  • लूप के अंदर, IF (col ==प्रिंसिपल) की जांच करें || (col ==सेकेंडरी) फिर गिनती को 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

  1. उन नोड्स की गणना करें जिनका योग X के साथ C++ में एक फाइबोनैचि संख्या है

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ

  1. सबरे योग C++ में K के बराबर होता है

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी और एक पूर्णांक k है, तो हमें निरंतर उप-सरणियों की कुल संख्या ज्ञात करनी होगी जिनका योग k के समान है। तो अगर nums array [1, 1, 1] है और k 2 है, तो आउटपुट 2 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक मानचित्र को परिभाषित करें जिसे योग कहा ज

  1. C++ में b से अधिक वाले उपसर्ग

    इस समस्या में, हमें स्ट्रिंग str दिया जाता है जिसमें केवल a और b होता है और एक पूर्णांक N होता है जैसे कि str n बार जोड़कर एक स्ट्रिंग बनाई जाती है। हमारा काम सबस्ट्रिंग की कुल संख्या को प्रिंट करना है जिसमें a की गिनती b की गिनती से अधिक है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं Input: aab