इस समस्या में, हमें दो संख्याएं n और k दी गई हैं। हमारा कार्य संख्या n का k-वां कम महत्वपूर्ण बिट (least significant bit) प्रिंट करना है।
आइए एक उदाहरण से समझते हैं:
इनपुट: n = 12, k = 3 आउटपुट: 1 व्याख्या: n का बाइनरी प्रतिनिधित्व देखें: 12 = 1100 अब, तीसरा कम महत्वपूर्ण बिट 1 है।
इस समस्या को हल करने के लिए हम संख्या के बाइनरी बिट्स का उपयोग करेंगे। और संख्या का k-वां बिट निकालेंगे। इसके लिए, हम संख्या की बाइनरी शिफ्टिंग का उपयोग करेंगे और संख्या को (k-1) बार बाएं शिफ्ट (left-shift) करेंगे। अब शिफ्ट की गई संख्या और मूल संख्या के एंड ऑपरेशन (AND operation) करने पर k-वें बिट का मान मिलेगा।
उदाहरण
नीचे दिया गया कोड हमारे समाधान का कार्यान्वयन दिखाता है:
#include <bits/stdc++.h>
using namespace std;
int main() {
int N = 12, K = 3;
cout << K << "वां महत्वपूर्ण बिट " << N << " का है: ";
bool kthLSB = (N & (1 << (K-1)));
cout << kthLSB;
return 0;
}
आउटपुट
3वां महत्वपूर्ण बिट 12 का है: 1