इस खंड में हम जांच करेंगे कि किसी संख्या में सेट बिट्स और अनसेट बिट्स की संख्या समान है या नहीं। मान लीजिए कि संख्या 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