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

C++ में सरणी के उन युग्मों की गिनती जिनका योग पूर्ण वर्ग है


हमें N तत्वों की एक सरणी दी गई है। लक्ष्य उन सभी युग्मों (Arr[i], Arr[j]) की गिनती ढूंढना है जिनका योग एक पूर्ण वर्ग है जैसे कि i!=j। यानी Arr[i]+Arr[j] एक पूर्ण वर्ग है।

हम इसे युग्मों का योग निकालकर और जांच करके करेंगे कि उस योग का वर्गमूल उस वर्गमूल के फ्लोर मान के बराबर है या नहीं। sqrt(Arr[i]+Arr[j]) - floor(sqrt(Arr[i]+Arr[j])) == 0।

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

इनपुट - Arr[]= { 4,3,2,1,2,4 } N=6

आउटपुट - पूर्ण वर्ग योग वाले युग्मों की संख्या: 2

व्याख्या -

Arr[1]+Arr[3]=4, sqrt(4)-floor(4)=0, 4 एक पूर्ण वर्ग है। Arr[2]+Arr[4]=4, sqrt(4)-floor(4)=0, 4 एक पूर्ण वर्ग है। बाकी सभी युग्मों का योग 7,6,5,8 है जो पूर्ण वर्ग नहीं हैं।

इनपुट - Arr[]= { 3,3,3,3,3} N=5

आउटपुट - पूर्ण वर्ग योग वाले युग्मों की संख्या: 0

व्याख्या - सभी युग्मों का योग=6 है, जो पूर्ण वर्ग नहीं है।

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

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

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

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

  • प्रत्येक युग्म के तत्व के लिए दो फॉर लूप का उपयोग करके सरणी को पार करते हैं।

  • बाहरी लूप 0<=i

  • arr[i], arr[j] के योग की गणना करते हैं जो धनात्मक हैं।

  • योग के वर्गमूल की गणना sqrt(sum) के रूप में करते हैं।

  • अब जांचते हैं कि sqr-floor(sqr)==0 है या नहीं। जिसका अर्थ है योग एक पूर्ण वर्ग है। यदि सही है तो काउंट बढ़ाते हैं।

  • सभी लूप के अंत में काउंट में पूर्ण वर्ग योग वाले युग्मों की कुल संख्या होगी।

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

उदाहरण

#include <bits/stdc++.h> #include <math.h> using namespace std; int countPairs(int arr[], int n){ int count=0; int sum=0; double sqr=0; for(int i=0;i 

आउटपुट

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

पूर्ण वर्ग योग वाले युग्म: 2

  1. - C++ में बाइनरी ट्री में उन जोड़ों को गिनना जिनका योग दिए गए मान x के बराबर है

    हमें एक पूर्णांक मान और एक वेरिएबल x दिया गया है और कार्य बाइनरी ट्री बनाना है और उन जोड़ों को ढूंढना है जिनका योग दिए गए मान x के बराबर है। उदाहरण के लिए इनपुट int x = 5, मानों को इनपुट करने के बाद जो ट्री बनेगा वह नीचे दिया गया है: आउटपुट Count of pairs in a binary tree whose sum is equal to a gi

  1. C++ में उन नोड्स को गिनना जिनका वजन एक परफेक्ट स्क्वायर है C++ में उन नोड्स को गिनना जिनका वजन एक परफेक्ट स्क्वायर है

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक परफेक्ट स्क्वायर है। यदि वजन 36 है तो यह 6² है इसलिए यह नोड गिना जाएगा। उदाहरण के लिए इनपुट मानों को इनपुट करने के बाद जो ट्री बनेगा वह नीचे दिया गया है: आउटपुट Count the nodes whose weight

  1. दो BSTs से योग x वाले नोड जोड़ों की गणना - C++ दो BSTs से योग x वाले नोड जोड़ों की गणना - C++

    समस्या विवरण हमें दो बाइनरी सर्च ट्री (BST) और एक मान x दिया गया है। लक्ष्य उन नोड जोड़ों की गणना करना है जहाँ एक नोड पहले BST से और दूसरा दूसरे BST से हो, और उनके डेटा का योग x के बराबर हो। उदाहरण आउटपुट: 1 (जोड़ी: 8+6=14) आउटपुट: 2 (जोड़ियाँ: 5+15=20, 4+16=20) दृष्टिकोण पहले BST को इनऑर्डर (छोटे