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

C++ में अगली संख्या का बाइनरी प्रतिनिधित्व


इस समस्या में, हमें एक संख्या का बाइनरी प्रतिनिधित्व दिया जाता है और हमें अगली संख्या का बाइनरी प्रतिनिधित्व ढूंढना होता है यानी दी गई संख्या में एक जोड़ने के बाद परिणामी संख्या।

बाइनरी प्रतिनिधित्व एक संख्या का आधार को आधार 2 में बदलना और संख्या को केवल 0 या 1 का उपयोग करके दर्शाना है।

उदाहरण के लिए, 14 का बाइनरी प्रतिनिधित्व 1110 है।

तो, यहां हमें बाइनरी रूप में एक संख्या दी जाएगी, मान लीजिए n। और हमें n+1 का बाइनरी प्रतिनिधित्व ढूंढना है।

इस समस्या को हल करने के लिए, हमें बाइनरी एडिशन की मूल बातें जानने की जरूरत है। आइए देखें कि बाइनरी रूप में 0 या 1 में 1 जोड़ने पर क्या होता है।

0 + 1 = 1

1 + 1 = 10

उदाहरण

आइए देखें कि उपरोक्त समस्या को कैसे हल किया जाए:

इनपुट: 010010111 
आउटपुट: 010011000 
व्याख्या: (010010111)₂, 152 का बाइनरी प्रतिनिधित्व है और अगली संख्या 153 होगी जिसका बाइनरी प्रतिनिधित्व (010011000)₂ है। हम यहां बाइनरी एडिशन का उपयोग करेंगे और संख्या के बाइनरी प्रतिनिधित्व में बाइनरी (1)₂ जोड़ेंगे।

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

एल्गोरिदम

चरण 1: दाएं से बाएं शुरू करें यानी n-1 से 0 तक 
चरण 2: यदि 0 मिले, तो इसे 1 में बदलें और ब्रेक करें 
चरण 3: यदि 1 मिले तो इसे 0 में बदलें। 
चरण 4: जब कोई जीरो न मिले, तो ऐरे की शुरुआत में 1 जोड़ें। 
चरण 5: ऐरे प्रिंट करें।

उदाहरण

अब, आइए इस एल्गोरिदम का कोड कार्यान्वयन देखें।

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

string nextBinary(string num) { 
    int l = num.size(); 
    int flag = 0; 
    for (int i = l - 1; i >= 0; i--) { 
        if (num.at(i) == '0') { 
            num.at(i) = '1'; 
            flag = 1; 
            break; 
        } else 
            num.at(i) = '0'; 
    } 
    if (flag < 0) 
        num = "1" + num; 
    return num; 
} 

int main() { 
    string number = "0111010111"; 
    cout << "The Binary representation of the number is " << number << endl; 
    cout << "Binary representation of next number is " << nextBinary(number); 
    return 0; 
}

आउटपुट

The Binary representation of the number is 0111010111 
Binary representation of next number is 0111011000

  1. - C++ में किसी संख्या को दूसरी संख्या की घातों के रूप में प्रस्तुत करना

    किसी संख्या को दूसरी संख्या की घात में प्रस्तुत करने की समस्या पर चर्चा करें। हमें दो संख्याएं, x और y दी गई हैं। हमें यह बताना होगा कि क्या y को x की घात में प्रस्तुत किया जा सकता है जहां x की प्रत्येक घात का उपयोग एक बार किया जा सकता है, उदाहरण के लिए: इनपुट: x = 4, y = 11 आउटपुट: true व्याख्या:

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस

  1. C++ में बाइनरी सर्च ट्री इटरेटर C++ में बाइनरी सर्च ट्री इटरेटर

    मान लीजिए हम बाइनरी ट्री के लिए एक इटरेटर बनाना चाहते हैं। दो मेथड होंगे। अगला एलिमेंट लौटाने के लिए next() मेथड, और बूलियन मान लौटाने के लिए hasNext() मेथड, जो इंगित करेगा कि अगला एलिमेंट मौजूद है या नहीं। तो यदि ट्री इस तरह है −और फंक्शन कॉल्स का अनुक्रम [next(), next(), hasNext(), next(), h