ইনপুট হিসাবে একটি পূর্ণসংখ্যা 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