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

C++ में कॉलम योग पंक्ति योग से अधिक होने वाले युग्मों की गिनती


हमें NxN आकार का एक मैट्रिक्स दिया गया है। लक्ष्य उन सभी वैध इंडेक्स युग्मों (i, j) की गिनती ढूंढना है जैसे कि कॉलम j के तत्वों का योग पंक्ति i के तत्वों के योग से बड़ा है।

हम इसे मैट्रिक्स को पार करके और प्रत्येक पंक्ति और कॉलम के तत्वों के योग की गणना करके करेंगे।

प्रत्येक पंक्ति के तत्वों के योग को rowsum[N] में और प्रत्येक कॉलम के तत्वों के योग को colsum[N] में स्टोर करते हैं।

अब rowsum[i] और colsum[j] के युग्म बनाते हैं और जांचते हैं कि colsum[j] > rowsum[i] है या नहीं। यदि सही है तो ऐसे युग्मों के लिए काउंट बढ़ाते हैं।

आइए उदाहरणों से समझते हैं।

इनपुट: मैट्रिक्स= { { 1,2,0,1}, { 3,3,0,2}, { 1,3,0,2}, { 3,0,0,2} };

आउटपुट - वैध युग्मों की संख्या: 9

व्याख्या -

Rowsum[0]= 1+2+0+1=5 Colsum[0]= 1+3+1+3=8 Rowsum[1]=3+3+0+2=8 Colsum[1]= 2+3+3+0=8 Rowsum[2]= 1+3+0+2=6 Colsum[2]= 0+0+0+0=0 Rowsum[3]=3+0+0+2=5 Colsum[3]= 1+2+2+2=7 (i,j) के युग्म जैसे कि rowsum[i] < colsum[j]: (0,0), (0,1), (0,3), (2,0), (2,1), (2,3), (3,0), (3,1), (3,3)

इनपुट -

Arr[]= { {1,1,1}, {1,1,1}, {1,1,1} } N=3

आउटपुट - वैध युग्मों की संख्या: 0

व्याख्या -

Rowsum[0]= 1+1+1=3 Colsum[0]= 1+1+1=3 Rowsum[1]= 1+1+1=3 Colsum[1]= 1+1+1=3 Rowsum[2]= 1+1+1=3 Colsum[2]= 1+1+1=3 कोई युग्म संभव नहीं जहां rowsum[i] < colsum[j]

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी Arr[] लेते हैं।

  • एक वेरिएबल n लेते हैं जो Arr[] की लंबाई स्टोर करता है।

  • फंक्शन countPairs(int arr[], int n) एक सरणी, उसकी लंबाई को इनपुट के रूप में लेता है और उन युग्मों को लौटाता है जो वैध हैं और वांछित शर्तों को पूरा करते हैं।

  • हम दो सरणियाँ rowsum[n] और colsum[n] लेते हैं।

  • मैट्रिक्स को पार करते हैं और arr[i][j] को rowsum[i] और colsum[j] में जोड़कर पंक्ति i और कॉलम j के योग की गणना करते हैं।

  • अब दो फॉर लूप का उपयोग करके colsum[] और rowsum[] सरणियों को पार करते हैं।

  • यदि कोई colsum[j] > rowsum[i] है। काउंट बढ़ाते हैं।

  • काउंट को परिणाम के रूप में लौटाते हैं।

उदाहरण

#include <bits/stdc++.h> using namespace std; int countPairs(int arr[][3], int n){ // युग्मों की गिनती int count = 0; int rowsum[n]={0}; int colsum[n]={0}; int i,j; for (i = 0; i < n; i++){ for (j = 0; j < n; j++){ rowsum[i]+=arr[i][j]; colsum[j]+=arr[i][j]; } } for(i=0;irowsum[i]) { count++; } } return count; } int main(){ int Arr[][3] = { {1,3,5},{2,4,6},{3,5,7} }; int side=3; cout <<endl<<"युग्मों की संख्या: "<< countPairs(Arr, side); return 0; }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -

युग्मों की संख्या: 4

  1. - C++ का उपयोग करके K से कम योग वाले सबअर्रे की संख्या ज्ञात करें

    इस लेख में, हम C++ का उपयोग करके K से कम योग वाले सबअर्रे की संख्या ज्ञात करेंगे। इस समस्या में, हमारे पास एक सरणी arr[] और एक पूर्णांक K है। अब हमें उन सबअर्रे को ढूंढना है जिनका योग K से कम है। यहाँ एक उदाहरण है:Input : arr[] = {1, 11, 2, 3, 15} K = 10 Output : 4 {1}, {2}, {3} और {2, 3}समाधान खोजन

  1. - C++ में N से छोटी वह संख्या जिसका अंकों का योग N के अंकों के योग से अधिक हो

    इस ट्यूटोरियल में, हम एक ऐसा प्रोग्राम लिखेंगे जो N से छोटी वह संख्या ढूंढता है जिसका अंकों का योग N के अंकों के योग से अधिक हो।आइए इस समस्या को हल करने के चरण देखते हैं।अंकों का योग ज्ञात करने के लिए एक फंक्शन लिखें।n को इनिशियलाइज़ करें।एक लूप लिखें जो n - 1 से 1 तक चले।वर्तमान संख्या के अंकों के

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

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।