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

C++ में योग 2 की घात होने वाले जोड़ों की संख्या


एक सरणी दी गई है, हमें उन जोड़ों की संख्या ढूंढनी है जिनका योग 2 की घात है। आइए उदाहरण देखते हैं।

इनपुट

arr = [1, 2, 3]

आउटपुट

1

केवल एक जोड़ी है जिसका योग 2 की घात है। और वह जोड़ी है (1, 3)।

एल्गोरिदम

  • सरणी को यादृच्छिक संख्याओं से आरंभ करें।
  • काउंट को 0 पर आरंभ करें।
  • सरणी के सभी जोड़े प्राप्त करने के लिए दो लूप लिखें।
    • प्रत्येक जोड़ी का योग निकालें।
    • बिटवाइज AND का उपयोग करके जांचें कि योग 2 की घात है या नहीं।
    • यदि काउंट 2 की घात है तो काउंट बढ़ाएं।
  • काउंट लौटाएं।

कार्यान्वयन

उपरोक्त एल्गोरिदम का C++ में कार्यान्वयन निम्नलिखित है:

#include <bits/stdc++.h> using namespace std; int get2PowersCount(int arr[], int n) {    int count = 0;    for (int i = 0; i < n; i++) {       for (int j = i + 1; j < n; j++) {          int sum = arr[i] + arr[j];          if ((sum & (sum - 1)) == 0) {             count++;          }       }    }    return count; } int main() {    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };    int n = 10;    cout << get2PowersCount(arr, n) << endl;    return 0; }

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

6
  1. - C++ में किसी संख्या के फैक्टोरियल में अंकों का योग ढूंढें

    मान लीजिए, हमारे पास एक संख्या n है, हमारा कार्य n! में अंकों का योग ढूंढना है। n = 5 पर विचार करें, तो n! = 120। तो परिणाम 3 होगा। इस समस्या को हल करने के लिए, हम एक वेक्टर बनाएंगे जो फैक्टोरियल अंकों को स्टोर करेगा और इसे 1 से प्रारंभ करेगा। फिर 1 से n तक एक-एक करके वेक्टर से गुणा करें। अब वेक्ट

  1. - C++ में अंकगणितीय संख्या (Arithmetic Number)

    अंकगणितीय संख्या क्या है? एक संख्या जिसके सभी धनात्मक भाजकों का औसत एक पूर्णांक हो। अर्थात, भाजकों का योग भाजकों की संख्या से विभाज्य हो। उदाहरण: n = 6 भाजक: 1, 2, 3, 6 योग = 12, भाजकों की संख्या = 4 12/4 = 3 (पूर्णांक) → अंकगणितीय संख्या है एल्गोरिदम भाजकों का योग निकालें भाजकों की संख्या गिन

  1. - C++ में CHAR_BIT

    CHAR_BIT क्या है? CHAR_BIT एक बाइट में बिट्स की संख्या दर्शाता है। <climits> या <limits.h> हेडर में परिभाषित। आमतौर पर 8 बिट्स प्रति बाइट होता है। C++ प्रोग्राम उदाहरण #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int total_bits = CHAR_BIT * size