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

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

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

इनपुट

n = 10

आउटपुट

5

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

एल्गोरिदम

  • नंबर एन शुरू करें।

  • बाइनरी रूप में सेट बिट्स की संख्या गिनने के लिए एक फ़ंक्शन लिखें।
  • गिनती शुरू करें 0.

  • एक लूप लिखें जो 1 . से पुनरावृत्त हो करने के लिए एन.

    • प्रत्येक पूर्णांक के सेट बिट्स की गणना करें।

    • यदि सेट बिट्स की संख्या विषम है तो गिनती बढ़ाएँ।

  • गिनती वापस करें।

कार्यान्वयन

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. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

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

  1. C++ में k सेट बिट्स के साथ किसी संख्या को अधिकतम करने के लिए आवश्यक न्यूनतम फ़्लिप।

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