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

C++ में उन अक्रमित युग्मों (i,j) की गिनती जिनका गुणनफल 2 की घात है


हमें 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 है, जो पूर्ण वर्ग नहीं है।

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

  • हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी 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 prod=0; for(int i=0;i 

आउटपुट

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

गुणनफल 2 की घात वाले युग्म: 6

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

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

  1. - C++ में a^2 + b^2 = c^2 शर्त वाले ट्रिपलेट्स (a, b, c) की गिनती

    हमें एक पूर्णांक n दिया गया है। लक्ष्य उन ट्रिपलेट्स (3 संख्याओं का सेट) को ढूंढना है जो शर्तों को पूरा करते हैं - a² + b² = c² 1 <= a <= b <= c <= n हम इसे 1<=a<=n और 1<=b<=n के मानों के लिए दो लूप चलाकर करेंगे। c की गणना तदनुसार करेंगे (c=sqrt(a²+b²)) और काउंट बढ़ाएंगे यदि दोनों शर्तें 1 और 2 पू

  1. - C++ में एक सरणी में ट्रिपलेट्स का अधिकतम योग खोजें जैसे कि i < j < k और a[i] < a[j] < a[k]

    अवधारणाएक दी गई धनात्मक पूर्णांकों की सरणी जिसका आकार n है, के संबंध में हमारा कार्य ट्रिपलेट (ai + aj + ak) का अधिकतम योग निर्धारित करना है जैसे कि 0 <= i < j < k < n और ai< aj< ak।इनपुटa[] = 3 6 4 2 5 10आउटपुट19व्याख्यासभी संभावित ट्रिपलेट्स हैं:- 3 4 5 => योग = 12 3 6 10 =>