एक 32-बिट अनसाइन्ड बाइनरी नंबर दिया गया है, कार्य सेट बिट्स को गिनना है, यानी इसमें मौजूद '1'।
उदाहरण के लिए
इनपुट:
N = 00000000000000100111
आउटपुट:
4
व्याख्या: दिए गए अनसाइन्ड नंबर में कुल सेट बिट्स 4 हैं, इस प्रकार हम आउटपुट के रूप में '4' लौटाएंगे।
इस समस्या को हल करने का दृष्टिकोण
हमें एक अनसाइन्ड 32-बिट बाइनरी नंबर दिया गया है। कार्य इसमें मौजूद '1' की संख्या गिनना है।
दिए गए बाइनरी नंबर में '1' की संख्या गिनने के लिए, हम इनबिल्ट STL फ़ंक्शन '__builin_popcount(n)' का उपयोग कर सकते हैं जो बाइनरी नंबर को इनपुट पैरामीटर के रूप में लेता है।
- इनपुट के रूप में एक बाइनरी नंबर N लें।
- एक फ़ंक्शन count1Bit(uint32_t n) 32-बिट बाइनरी नंबर को इनपुट के रूप में लेता है और बाइनरी नंबर में मौजूद '1' की गिनती लौटाता है।
- इनबिल्ट फ़ंक्शन __builtin_popcount(n) 'n' के इनपुट को पैरामीटर के रूप में लेता है और गिनती लौटाता है।
उदाहरण
#include<bits/stdc++.h>
using namespace std;
int count1bits(uint32_t n) {
return bitset < 32 > (n).count();
}
int main() {
uint32_t N = 0000000010100000011;
cout << count1bits(N) << endl;
return 0;
}
उपरोक्त कोड चलाने से आउटपुट इस प्रकार उत्पन्न होगा,
आउटपुट
4
दिए गए नंबर में 4 सेट बिट्स या '1s' मौजूद हैं। इसलिए, आउटपुट '4' है।