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

C++ में N से छोटी बाइनरी अंकों की संख्या की संख्या

इनपुट के रूप में एक पूर्णांक N दिया गया है। लक्ष्य उन पूर्णांकों की संख्या ज्ञात करना है जो N से कम हैं और बाइनरी रूप में दर्शाए गए हैं। उदाहरण के लिए यदि इनपुट एन 12 है तो 12 से कम संख्याएं 1,10,11 हैं जो बाइनरी हैं और इसमें 0s और 1s अंक हैं। उत्तर होगा 3.

उदाहरण के लिए

इनपुट

N=100

आउटपुट

Count of Binary Digit numbers smaller than N are − 4
. है

स्पष्टीकरण

The Binary numbers less than 100 are − 1, 10, 11, 100

इनपुट

N=120

आउटपुट

Count of Binary Digit numbers smaller than N are: 7

स्पष्टीकरण

The Binary numbers less than 100 are : 1, 10, 11, 100, 101, 110, 111

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

इस दृष्टिकोण में हम एक पूर्णांक वेक्टर vec का उपयोग करेंगे। इसके लिए हम पहले 1 को आगे बढ़ाएंगे। अब अगला बाइनरी नंबर जेनरेट करने के लिए हम vec (शुरुआत में 1) से आखिरी नंबर (temp) निकालेंगे। फिर अगला उपयोग करके उत्पन्न करें:अस्थायी * 10 और अस्थायी * 10 + 1 द्विआधारी संख्या के रूप में हमेशा (1,10,11,100,110,111…।) होगा। vec से पॉप नंबर और अगर यह N से कम है तो इंक्रीमेंट काउंट।

  • इनपुट के रूप में एक पूर्णांक N लें।

  • फ़ंक्शन Smaller_N(int N) N लेता है और N से छोटी बाइनरी अंकों की संख्या देता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • पूर्णांकों को संग्रहीत करने के लिए पूर्णांक वेक्टर vec लें जिसमें केवल 0s और 1s हों।

  • vec.push_back(1) का उपयोग करके सदिश में 1 जोड़ें।

  • लूप का उपयोग करते हुए, vec[ ] को पार करें और अंतिम पुश को temp=vec.back() के रूप में निकालें। और इसे vec से हटा दें।

  • यदि temp<=N, तो वृद्धि की गणना करें और अगला बाइनरी पूर्णांक temp*10and temp*10+1 के रूप में उत्पन्न करें और vec में जोड़ें।

  • परिणाम के रूप में वापसी की गणना के अंत में।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int Smaller_N(int N){
   int count = 0;
   vector<int> vec;
   vec.push_back(1);
   while (!vec.empty()){
      int temp = vec.back();
      vec.pop_back();
      if (temp <= N){
         count++;
         int temp_2 = temp * 10;
         vec.push_back(temp_2);
         vec.push_back(temp_2 + 1);
      }
   }
   return count;
}
int main(){
   int N = 1000;
   cout<<"Count of Binary Digit numbers smaller than N are: "<<Smaller_N(N);
   return 0;
}

आउटपुट

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

Count of Binary Digit numbers smaller than N are: 8

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

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

  1. 1 से n तक की संख्याओं की गणना करें जिनमें C++ में एक अंक के रूप में 4 हों

    इस ट्यूटोरियल में, हम 1 से n तक की संख्याओं को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जिसमें 4 अंक होंगे। इसके लिए हमें एक नंबर n प्रदान किया जाएगा। हमारा काम उन सभी नंबरों को गिनना है जिनमें 4 अंकों में से एक है और उसका प्रिंट आउट लेना है। उदाहरण #include<iostream> using namespace std; b

  1. न्यूनतम संख्याएं जो N से छोटी या उसके बराबर हों और C++ में योग S के साथ हों

    समस्या कथन 1 से N और एक संख्या S से N नंबर दिए गए हैं। कार्य S को देने के लिए योग की न्यूनतम संख्या को प्रिंट करना है उदाहरण यदि n =7 और s =10 तो न्यूनतम 2 संख्याएँ आवश्यक हैं (9, 1) (8, 2) (7, 3) (6, 4) एल्गोरिदम Answer can be calculated using below formula (S/N) + 1 if { S %N > 0} उदाहरण #inc