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

बाइनरी प्रतिनिधित्व में सभी 1s एक साथ होने वाली संख्याओं की गणना करें C++ में


हमें एक धनात्मक पूर्णांक N दिया गया है। लक्ष्य N से कम या बराबर उन संख्याओं की गणना करना है जिनके बाइनरी प्रतिनिधित्व में सभी 1s एक साथ हों। उदाहरण के लिए 1 है 1, 3 है 11, 7 है 111, 15 है 1111... इत्यादि।

यदि हम संख्याओं को देखें तो ये सभी 2^i - 1 के रूप में हैं। जहां i 1 से शुरू होता है। ऐसी संख्याओं की जांच करने के लिए जो n से कम हैं, हम तुलना करेंगे यदि 2^i - 1 <= n। फिर काउंट बढ़ाएंगे।

उदाहरण से समझते हैं

इनपुट - N=15

आउटपुट - बाइनरी में सभी 1s वाली संख्याएं: 4

व्याख्या - संख्याएं होंगी 1, 3, 7, 15

इनपुट - N=50

आउटपुट - बाइनरी में सभी 1s वाली संख्याएं: 5

व्याख्या - संख्याएं होंगी 1, 3, 7, 15, 31

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

  • हम एक धनात्मक पूर्णांक N लेते हैं।

  • फ़ंक्शन allOnes(int n) n को इनपुट के रूप में लेता है और उन संख्याओं को लौटाता है जिनके बाइनरी प्रतिनिधित्व में सभी 1s हों।

  • प्रारंभिक चर count को 0 से आरंभ करें ऐसी संख्याओं के लिए।

  • i=1 से i<=n तक फॉर लूप का उपयोग करके पार करें।

  • प्रत्येक i के लिए, यदि pow(2,i)-1, n से कम या बराबर है तो काउंट बढ़ाएं।

  • फॉर लूप के अंत में काउंट को परिणाम के रूप में लौटाएं।

उदाहरण

#include <bits/stdc++.h> using namespace std; int allOnes(int n){    int count = 0;    for(int i=1;i<=n;i++){       if(n>=pow(2,i)-1){          count++;          //cout<<" "<<pow(2,i)-1;       }    }    return count; } int main(){    int N=23;    cout <<endl<< "बाइनरी में सभी 1s वाली संख्याएं: "<<allOnes(N);    return 0; }

आउटपुट

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

बाइनरी में सभी 1s वाली संख्याएं: 4

  1. C++ में ऊंचाई h के संतुलित बाइनरी ट्री की गणना C++ में ऊंचाई h के संतुलित बाइनरी ट्री की गणना

    हमें बाइनरी ट्री की ऊंचाई H दी गई है। लक्ष्य दी गई ऊंचाई के संतुलित बाइनरी ट्री की संख्या/गणना ज्ञात करना है। एक बाइनरी ट्री - एक ट्री डेटा संरचना है जिसमें प्रत्येक नोड के अधिकतम दो बच्चे होते हैं, जो बाएं बच्चे और दाएं बच्चे होते हैं। ऊंचाई-संतुलित बाइनरी ट्री - एक बाइनरी ट्री के रूप में परिभाषित

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

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

  1. - C++ में दी गई संख्या का बाइनरी प्रतिनिधित्व

    बाइनरी संख्या बाइनरी संख्या केवल 0 और 1 अंकों से बनी होती है। पुनरावर्ती विधि पुनरावृत्ति का उपयोग करके संख्या को बाइनरी में बदलें: 1, तो संख्या/2 के साथ पुनरावर्ती कॉल करें वापस आते समय संख्या % 2 प्रिंट करें उदाहरण कोड 1) toBinary(number / 2); cout << number % 2; } int ma