इनपुट के रूप में एक पूर्णांक 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