কম্পিউটার

C++ এ অল্টারনেটিং বিট সহ বাইনারি সংখ্যা


ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা আছে, আমাদের পরীক্ষা করতে হবে এতে বিকল্প বিট আছে কিনা - তাই, দুটি সন্নিহিত বিটের সবসময় আলাদা মান থাকবে।

সুতরাং, যদি ইনপুট 10 এর মত হয়, তাহলে আউটপুট হবে True, যেহেতু 10-এর বাইনারি উপস্থাপনা হল 1010৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • p :=n এবং 1
  • যদি n <2, তাহলে −
    • সত্য ফেরত দিন
  • n :=n/2
  • যখন n অ-শূন্য, কর −
    • c :=n এবং 1
    • যদি c XOR p 0 এর মত হয়, তাহলে −
      • মিথ্যে ফেরত দিন
    • p :=c
    • n :=n/2
  • সত্য ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool hasAlternatingBits(int n) {
      bool p=n&1;
      bool c;
      if(n<2)
         return true;
      n>>=1;
      while(n){
         c=n&1;
         if(c^p==0)
            return false;
         p=c;
         n>>=1;
      }
      return true;
   }
};
main(){
   Solution ob;
   cout << (ob.hasAlternatingBits(10));
}

ইনপুট

10

আউটপুট

1

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

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

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

  4. C++ এ k সেট বিট সহ একটি সংখ্যাকে সর্বাধিক করার জন্য ন্যূনতম ফ্লিপস প্রয়োজন।