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

C++ में n बाइनरी स्ट्रिंग्स जोड़ना

यहां हम देखेंगे कि n बाइनरी संख्याओं को स्ट्रिंग के रूप में जोड़ने वाला प्रोग्राम कैसे लिखें। आसान तरीका है बाइनरी स्ट्रिंग को उसके दशमलव समतुल्य में बदलना, फिर उन्हें जोड़ना और वापस बाइनरी में बदलना। यहां हम मैन्युअली जोड़ करेंगे।

एल्गोरिदम

addTwoBinary(bin1, bin2)

begin
    s := 0
    result := खाली स्ट्रिंग
    i := bin1 की लंबाई, j := bin2 की लंबाई
    while i >= 0 OR j >= 0 OR s = 1, do
        if i >= 0 then
            s := s + bin1[i] को संख्या के रूप में
        else
            s := s + 0
        end if
        if j >= 0 then
            s := s + bin2[j] को संख्या के रूप में
        else
            s := s + 0
        end if
        result := (s mod 2) को result के साथ जोड़ें
        s := s / 2
        i := i - 1
        j := j - 1
    done
    return result
end

उदाहरण

#include <iostream>
using namespace std;

string addTwoBinary(string bin1, string bin2) {
    string result = "";
    int s = 0; // s बिट योग रखने के लिए
    int i = bin1.length() - 1, j = bin2.length() - 1; // LSB से ट्रैवर्स करें
    
    while (i >= 0 || j >= 0 || s == 1) {
        if (i >= 0)
            s += bin1[i] - '0';
        else
            s += 0;
            
        if (j >= 0)
            s += bin2[j] - '0';
        else
            s += 0;
            
        result = char(s % 2 + '0') + result;
        s /= 2; // कैरी प्राप्त करें
        i--; j--;
    }
    return result;
}

string add_n_binary(string arr[], int n) {
    string result = "";
    for (int i = 0; i < n; i++)
        result = addTwoBinary(result, arr[i]);
    return result;
}

int main() {
    string arr[] = {"1011", "10", "1001"};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << add_n_binary(arr, n) << endl;
    return 0;
}

आउटपुट

10110
  1. C++ में बाइनरी ट्री प्रिंट करना C++ में बाइनरी ट्री प्रिंट करना

    मान लीजिए हमें एक बाइनरी ट्री को m×n 2D स्ट्रिंग सरणी में इन नियमों के आधार पर प्रदर्शित करना है: पंक्ति संख्या m दी गई बाइनरी ट्री की ऊंचाई के समान होनी चाहिए। स्तंभ संख्या n हमेशा एक विषम संख्या होनी चाहिए। रूट नोड का मान पहली पंक्ति के ठीक बीच में रखा जाना चाहिए जहां इसे रखा जा सकता है। वह स्तं

  1. C++ में बाइनरी ट्री प्रूनिंग C++ में बाइनरी ट्री प्रूनिंग

    मान लीजिए हमारे पास एक बाइनरी ट्री का हेड नोड root है, जहाँ प्रत्येक नोड का मान या तो 0 या 1 है। हमें वही ट्री लौटाना है जहाँ हर वह सबट्री हटा दी गई हो जिसमें 1 नहीं है। उदाहरण: इनपुट ट्री [1,1,0,1,1,0,1,0] के लिए, आउटपुट ट्री में केवल वही नोड्स रहेंगे जिनके सबट्री में कम से कम एक 1 है। पोस्ट-ऑर्

  1. C++ में बाइनरी खोज प्रोग्राम C++ में बाइनरी खोज प्रोग्राम

    बाइनरी खोज क्या है? बाइनरी खोज (आधा-अंतराल खोज) एक खोज एल्गोरिदम है जो क्रमबद्ध सरणी में लक्ष्य मान की स्थिति ढूंढता है। यह लक्ष्य मान की तुलना मध्य तत्व से करता है और खोज स्थान को आधा कर देता है। मुख्य बिंदु केवल क्रमबद्ध सरणी पर काम करता है समय जटिलता: O(log n) दुनिया के सभी नाम क्रमबद्ध हों तो