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

C++ में अधिकतम K सेट बिट्स वाले X से कम की सबसे बड़ी संख्या

इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो सबसे बड़ी संख्या को ढूंढता है जो दिए गए x से कम है और इसमें अधिकतम k सेट बिट्स होने चाहिए।

आइए समस्या को हल करने के लिए चरणों को देखें।

  • संख्याओं x और k को प्रारंभ करें।
  • संख्या x में सेट बिट्स खोजें।
  • एक लूप लिखें जो x - k के सेट बिट्स काउंट को पुनरावृत्त करता है।
    • x के मान को x और (x - 1) से अपडेट करें।
  • रिटर्न x.

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;
int largestNumberWithKBits(int x, int k) {
   int set_bit_count = __builtin_popcount(x);
   if (set_bit_count <= k) {
      return x;
   }
   int diff = set_bit_count - k;
   for (int i = 0; i < diff; i++) {
      x &= (x - 1);
   }
   return x;
}
int main() {
   int x = 65, k = 2;
   cout << largestNumberWithKBits(x, k) << endl;
   return 0;
}

आउटपुट

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

65

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. C++ में Y से कम संख्या वाले सेटों की न्यूनतम संख्या

    समस्या कथन लगातार अंकों की एक स्ट्रिंग और एक संख्या Y को देखते हुए, कार्य न्यूनतम सेटों की संख्या ज्ञात करना है जैसे कि प्रत्येक सेट नीचे दिए गए नियम का पालन करता है - सेट में लगातार संख्याएं होनी चाहिए किसी भी अंक का एक से अधिक बार उपयोग नहीं किया जा सकता है। सेट में संख्या Y से अधिक नहीं होनी चा

  1. जांचें कि क्या किसी संख्या में वैकल्पिक पैटर्न में बिट्स हैं - C++ में 1 सेट करें

    आइए मान लें कि हमारे पास एक पूर्णांक n है। समस्या यह जांचना है कि क्या इस पूर्णांक के बाइनरी समकक्ष में वैकल्पिक पैटर्न हैं या नहीं। वैकल्पिक पैटर्न का अर्थ है 101010…. दृष्टिकोण इस प्रकार है:बाइनरी समकक्ष का उपयोग करके प्रत्येक अंक की जांच करें, और यदि लगातार दो समान हैं, तो झूठी वापसी करें, अन्यथ

  1. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

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