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

C++ में n सेट और m अनसेट बिट्स के साथ सबसे बड़ी संख्या ज्ञात कीजिए

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

समस्या को समझने के लिए एक उदाहरण लेते हैं

Input : n = 3, m = 1
Output : 14

स्पष्टीकरण -

Largest number will have 3 set bits and then 1 unset bit.
(1110)2 = 14

समाधान दृष्टिकोण

समस्या का एक सरल समाधान है (n+m) सेट बिट्स वाली संख्या का पता लगाना। इस नंबर से, एम बिट्स को अंत (एलएसबी) से टॉगल करें। (n+m) सेट बिट्स के साथ एक संख्या बनाने के लिए,

$$(1\ll(n+m))-1$$

फिर एम बिट्स को टॉगल करें और नंबर वापस करें।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findlargestNumber(int n, int m){
   int maxNum = (1 << (n + m)) - 1;
   if (m == 0)
      return maxNum;
   int number = (1 << m) - 1;
   return (maxNum ^ number);
}
int main(){
   int n = 5,
   m = 2;
   cout<<"The largest number with "<<n<<" set bits and "<<m<<" unset bits is "<<findlargestNumber(n, m);
   return 0;
}

आउटपुट

The largest number with 5 set bits and 2 unset bits is 124

  1. C++ का उपयोग करके सेट पर रिफ्लेक्सिव रिलेशंस की संख्या ज्ञात करें

    इस लेख में, हम एक सेट पर रिफ्लेक्सिव संबंधों की संख्या को खोजने के तरीकों की व्याख्या करेंगे। इस समस्या में, हमें संख्या n दी गई है, और n प्राकृत संख्याओं के समुच्चय पर, हमें प्रतिवर्ती संबंधों की संख्या निर्धारित करनी होगी। चिंतनशील संबंध − समुच्चय A में एक संबंध प्रतिवर्ती कहलाता है यदि (a, a) R

  1. C++ में दिए गए अंकों से बनने वाली सबसे बड़ी संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास अंकों की एक सरणी है। हमें वह अधिकतम संख्या ज्ञात करनी है जो सरणी के सभी अंकों का उपयोग करके प्राप्त की जा सकती है। तो अगर सरणी [3, 3, 9, 6, 2, 5] की तरह है, तो अधिकतम संख्या 965332 हो सकती है। समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते

  1. जांचें कि किसी संख्या में सी ++ में सेट और अनसेट बिट्स की संख्या समान है या नहीं

    इस खंड में हम जांच करेंगे कि किसी संख्या में सेट बिट्स और अनसेट बिट्स की संख्या समान है या नहीं। मान लीजिए कि संख्या 12 है। इसका द्विआधारी प्रतिनिधित्व 1100 है। इसमें 0 और 1 की संख्या समान है। दृष्टिकोण सरल है। हम संख्या के प्रत्येक बिट की जाँच करेंगे, और यदि वह 1 है, तो set_bit_count बढ़ाएँ, और यद