কম্পিউটার

C++ এ বাইনারি উপস্থাপনায় কাউন্ট সংখ্যার সবগুলো 1s একসাথে থাকে


আমাদেরকে একটি ধনাত্মক পূর্ণসংখ্যা N দেওয়া হয়েছে। লক্ষ্য হল N এর থেকে কম বা সমান সংখ্যাগুলি গণনা করা যেগুলির বাইনারি উপস্থাপনায় সমস্ত 1 আছে৷ যেমন 1 হল 1, 3 হল 11, 7 হল 111, 15 হল 1111... এভাবেই৷

যদি আমরা সংখ্যা দেখি তাহলে সবগুলোই 2i-1। যেখানে আমি 1 থেকে শুরু করি। n এর চেয়ে কম এই জাতীয় সংখ্যা পরীক্ষা করতে। আমরা তুলনা করব যদি 2i-1<=n. তারপর সংখ্যা বৃদ্ধি।

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট − N=15

আউটপুট − বাইনারিতে 1 এর সমস্ত সংখ্যা রয়েছে:4

ব্যাখ্যা − একই মৌলিক সংখ্যার যোগফল হিসাবে সংখ্যাগুলি − সংখ্যাগুলি হবে 1 3 7 15

ইনপুট − N=50

আউটপুট − বাইনারিতে সমস্ত 1 আছে এমন সংখ্যা :5

ব্যাখ্যা − একই মৌলিক সংখ্যার যোগফল হিসাবে সংখ্যা −

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • আমরা একটি ধনাত্মক পূর্ণসংখ্যা N..

    নিই
  • ফাংশন allOnes(int n) ইনপুট হিসাবে n নেয় এবং বাইনারি উপস্থাপনায় 1 এর সমস্ত সংখ্যা প্রদান করে।

  • এই ধরনের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন..

  • লুপ ব্যবহার করে i=1 থেকে i<=n এ যাত্রা করুন।

  • প্রতিটি i এর জন্য, যদি pow(2,i)-1 n এর থেকে কম বা সমান হয়। সংখ্যা বৃদ্ধি।

  • লুপের শেষে ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int allOnes(int n){
   int count = 0;
   for(int i=1;i<=n;i++){
      if(n>=pow(2,i)-1){
         count++;
         //cout<<" "<<pow(2,i)-1;
      }
   }
   return count;
}
int main(){
   int N=23;
   cout <<endl<< "Number having all 1's in binary : "<<allOnes(N);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Number having all 1's in binary : 4

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

  2. C++ এ পূর্ববর্তী সংখ্যার বাইনারি উপস্থাপনা

  3. C++ এ পরবর্তী সংখ্যার বাইনারি উপস্থাপনা

  4. C++ এ একটি প্রদত্ত সংখ্যার বাইনারি উপস্থাপনা