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

x ≤ n के उन मानों की गणना जिनके लिए (n XOR x) = (n - x) - C++

समस्या विवरण

हमें एक संख्या n दी गई है। लक्ष्य उन मानों x की गणना करना है जहाँ 0 ≤ x ≤ n और (n XOR x) = (n - x)।

उदाहरण

इनपुट: n = 10

आउटपुट: 4

व्याख्या: मान: 0, 2, 8, 10

इनपुट: n = 15

आउटपुट: 16

व्याख्या: सभी मान 0 से 15 तक वैध हैं।

दृष्टिकोण

साधारण दृष्टिकोण: 0 से n तक लूप करें और शर्त जाँचें।

कुशल दृष्टिकोण: n को बाइनरी में बदलें। प्रत्येक सेट बिट (1) के लिए, x में संबंधित बिट 0 या 1 हो सकती है (2 विकल्प)। n में p सेट बिट्स के लिए, वैध x की संख्या = 2^p।

एल्गोरिदम (कुशल)

  1. n को बाइनरी स्ट्रिंग में बदलें
  2. '1' बिट्स गिनें → count
  3. उत्तर = 2^count
  4. लौटाएँ

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

// साधारण दृष्टिकोण
int count_values_naive(int n) {
    int count = 0;
    for (int i = 0; i <= n; i++) {
        if (n - i == (n ^ i)) count++;
    }
    return count;
}

// कुशल दृष्टिकोण
int count_values_efficient(int n) {
    int count = 0;
    string binary = bitset<32>(n).to_string();
    for (char c : binary) if (c == '1') count++;
    return (1 << count); // 2^count
}

int main() {
    int n = 25;
    cout << "Naive: " << count_values_naive(n) << endl;
    cout << "Efficient: " << count_values_efficient(n);
    return 0;
}

आउटपुट

Naive: 8
Efficient: 8
  1. - C++ में उन सभी पैलिंड्रोम की गणना करें जो एक पैलिंड्रोम का वर्ग हैं

    इस ट्यूटोरियल में, हम उन पैलिंड्रोम की संख्या खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे जो एक पैलिंड्रोम के वर्ग हैं।इसके लिए हमें दो मान L और R प्रदान किए जाएंगे। हमारा कार्य दी गई सीमा में सुपर पैलिंड्रोम की संख्या ढूंढना है। एक सुपर पैलिंड्रोम वह है जिसमें संख्या और उसका वर्ग दोनों पैलिंड्रोम हैं

  1. - C++ में दिए गए XOR वाले सभी जोड़ों की गणना करें

    इस ट्यूटोरियल में, हम दिए गए XOR वाले जोड़ों की संख्या खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें एक सरणी और एक मान प्रदान किया जाएगा। हमारा कार्य उन जोड़ों की संख्या ढूंढना है जिनका XOR दिए गए मान के बराबर है।उदाहरण#include<bits/stdc++.h> using namespace std; //returning the numb

  1. - C++ में दो संख्याओं के सामान्य भाजकों की संख्या गिनने का प्रोग्राम

    यहां हम देखेंगे कि दो संख्याओं के सामान्य भाजकों की संख्या कैसे प्राप्त की जा सकती है। हम सभी सामान्य भाजक नहीं ढूंढने जा रहे हैं, लेकिन हम गिनेंगे कि कितने सामान्य भाजक हैं। यदि दो संख्याएं 12 और 24 जैसी हैं, तो सामान्य भाजक 1, 2, 3, 4, 6, 12 हैं। तो 6 सामान्य भाजक हैं, इसलिए उत्तर 6 होगा। एल्गोरि