এই বিভাগে আমরা একটি সংখ্যার সেট বিট এবং আনসেট বিটগুলির একই সংখ্যা আছে কিনা তা পরীক্ষা করব। ধরুন 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