इस खंड में हम जांचेंगे कि क्या किसी संख्या में सेट बिट्स और अनसेट बिट्स की समान संख्या है या नहीं। मान लीजिए संख्या 12 है। इसका बाइनरी प्रतिनिधित्व 1100 है। इसमें 0 और 1 की समान संख्या है।
दृष्टिकोण सरल है। हम संख्या के प्रत्येक बिट की जांच करेंगे, और यदि वह 1 है, तो set_bit_count बढ़ाएं, और यदि यह 0 है, तो unset_bit_count बढ़ाएं। अंत में, यदि वे समान हैं, तो true लौटाएं, अन्यथा false।
उदाहरण
#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; // दाएं शिफ्ट
}
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