কম্পিউটার

একটি সংখ্যার C++ এ একই সংখ্যক সেট এবং আনসেট বিট আছে কিনা তা পরীক্ষা করুন


এই বিভাগে আমরা একটি সংখ্যার সেট বিট এবং আনসেট বিটগুলির একই সংখ্যা আছে কিনা তা পরীক্ষা করব। ধরুন 12 নম্বরটি আছে। এর বাইনারি উপস্থাপনা হল 1100। এতে 0 এবং 1 সেকেন্ডের একই সংখ্যা রয়েছে।

পদ্ধতি সহজ. আমরা সংখ্যার প্রতিটি বিট পরীক্ষা করব, এবং যদি তা 1 হয়, তাহলে set_bit_count বাড়ান, এবং যদি 0 হয়, তাহলে unset_bit_count বাড়ান। অবশেষে, যদি তারা একই হয়, তাহলে সত্য ফেরত দিন, অন্যথায় মিথ্যা।

উদাহরণ

#include <iostream>
using namespace std;
bool hasSameSetUnset(int n) {
   int set_count = 0, unset_count = 0;
   while(n){
      if((n & 1) == 1){
         set_count++;
      }else{
         unset_count++;
      }
      n = n >> 1; //shift to right
   }
   if(set_count == unset_count)
   return true;
   return false;
}
int main() {
   int num = 35; //100011
   if(hasSameSetUnset(num)){
      cout << "Has same set, unset bits";
   }else{
      cout << "Not same number of set, unset bits";
   }
}

আউটপুট

Has same set, unset bits

  1. একটি সংখ্যার C++ এ দুটি সংলগ্ন সেট বিট আছে কিনা তা পরীক্ষা করুন

  2. একটি বড় সংখ্যা 2, 3 এবং 5 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  3. C++ এ সেট বিটের গণনা অনুসারে একটি অ্যারে সাজান

  4. পাইথনে নম্বরটিতে শুধুমাত্র প্রথম এবং শেষ বিট সেট আছে কিনা তা পরীক্ষা করুন