समस्या कथन
एक अनसाइन्ड संख्या दी गई है, दी गई अनसाइन्ड संख्या के बिट्स का उपयोग करके बनाई जा सकने वाली न्यूनतम संख्या ज्ञात करें।
उदाहरण
यदि इनपुट = 10 तो उत्तर 3 होगा
10 का बाइनरी प्रतिनिधित्व 1010 है और 2 सेट बिट्स के साथ न्यूनतम संख्या 0011 यानी 3 है
एल्गोरिदम
1. सेट बिट्स की संख्या गिनें। 2. (सेट बिट्स की संख्या) ^ 2 - 1 न्यूनतम संख्या को दर्शाता है)
उदाहरण
#include <bits/stdc++.h> using namespace std; int getSetBits(int n) { int cnt = 0; while (n) { ++cnt; n = n & (n - 1); } return cnt; } int getMinNumber(int n){ int bits = getSetBits(n); return pow(2, bits) - 1; } int main() { int n = 10; cout << "न्यूनतम संख्या = " << getMinNumber(n) << endl; return 0; return 0; }जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है
आउटपुट
न्यूनतम संख्या = 3