ইনপুট হিসাবে একটি পূর্ণসংখ্যা 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) বের করব। তারপর পরবর্তী ব্যবহার করে তৈরি করুন:temp*10 এবং temp*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*10 এবং 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