কম্পিউটার

C++ এ N থেকে ছোট বাইনারি ডিজিট সংখ্যার গণনা


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

  1. C++ এ h উচ্চতার সুষম বাইনারি গাছ গণনা করুন

  2. C++-এ নিজের পরে ছোট সংখ্যার গণনা

  3. 1 থেকে n পর্যন্ত সংখ্যাগুলি গণনা করুন যেগুলির সংখ্যা C++ এ 4 আছে

  4. ন্যূনতম সংখ্যা যা N এর থেকে ছোট বা সমান এবং C++ এ যোগফল S সহ