Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में विषम संख्या में सेट बिट्स वाले पूर्णांकों की संख्या


एक संख्या n दी गई है, हमें उन पूर्णांकों की संख्या ढूंढनी है जिनके बाइनरी रूप में विषम संख्या में सेट बिट्स हैं। आइए एक उदाहरण देखते हैं।

इनपुट

n = 10

आउटपुट

5

1 से 10 तक 5 पूर्णांक हैं जिनके बाइनरी रूप में विषम संख्या में सेट बिट्स हैं।

एल्गोरिदम

  • संख्या N को आरंभ करें।
  • बाइनरी रूप में सेट बिट्स गिनने के लिए एक फंक्शन लिखें।
  • काउंट को 0 पर आरंभ करें।
  • एक लूप लिखें जो 1 से N तक पुनरावृति करता है।
    • प्रत्येक पूर्णांक के सेट बिट्स गिनें।
    • यदि सेट बिट्स काउंट विषम है तो काउंट बढ़ाएं।
  • काउंट लौटाएं।

कार्यान्वयन

उपरोक्त एल्गोरिदम का C++ में कार्यान्वयन निम्नलिखित है:

#include <bits/stdc++.h> using namespace std; int getSetBitsCount(int n) {    int count = 0;    while (n) {       if (n % 2 == 1) {          count += 1;       }       n /= 2;    }    return count; } int getOddSetBitsIntegerCount(int n) {    int count = 0;    for (int i = 1; i <= n; i++) {       if (getSetBitsCount(i) % 2 == 1) {          count += 1;       }    }    return count; } int main() {    int n = 10;    cout << getOddSetBitsIntegerCount(n) << endl;    return 0; }

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

5
  1. - C++ में समान सेट बिट्स वाले अधिकतम सन्निहित सरणी तत्व

    हमें पूर्णांक तत्वों की एक असॉर्ट की गई सरणी दी गई है और कार्य है दो प्रमुख चीजों की गणना करना: समान संख्या में सेट बिट्स वाले तत्व समान सेट बिट्स वाले तत्व सन्निहित प्रकृति के भी होने चाहिए। इनपुट int arr[] = { 5, 8, 1, 2, 9, 12 } आउटपुट: समान संख्या में सेट बिट्स वाले अधिकतम सन्निहित सरणी तत्व:

  1. - C++ में सेट बिट्स की संख्या के अनुसार ऐरे सॉर्ट करें

    यहां हम सेट-बिट्स के आधार पर ऐरे को सॉर्ट करने की एक दिलचस्प समस्या देखेंगे। जब ऐरे में किसी एलिमेंट में अधिक सेट-बिट्स होते हैं, तो उसे उस एलिमेंट से पहले रखा जाएगा जिसमें कम सेट बिट्स होते हैं। मान लीजिए कुछ नंबर्स हैं 12, 15, 7। तो सेट बिट्स मूल रूप से उनके बाइनरी प्रतिनिधित्व में 1s की संख्या है

  1. - C++ में k सेट बिट्स के साथ नंबर को अधिकतम करने के लिए न्यूनतम फ्लिप्स

    समस्या कथनदो नंबर n और k दिए गए हैं, हमें दिए गए नंबर को उसके बिट्स फ्लिप करके अधिकतम करने के लिए आवश्यक न्यूनतम फ्लिप्स की संख्या ढूंढनी है जैसे कि परिणामी नंबर में ठीक k सेट बिट्स हों। कृपया ध्यान दें कि इनपुट को कंडीशन पूरी करनी चाहिए कि k, n में बिट्स की संख्या से कम हो।उदाहरणमान लीजिए n = 9 और