मान लीजिए हमारे पास एक संख्या n और एक मान k है। हमें जांचना है कि n में k-वां बिट सेट (1) है या नहीं। k का मान दाएं हाथ की ओर से गिना जाता है।
उदाहरण के लिए, यदि इनपुट n = 23, k = 3 है, तो आउटपुट True होगा क्योंकि 23 का बाइनरी रूप 10111 है और दाएं से तीसरा बिट 1 (सेट) है।
हल करने का तरीका
- temp := n को (k - 1) बार दाएं शिफ्ट करने के बाद
- यदि temp AND 1 1 है, तो True लौटाएं
- अन्यथा False लौटाएं
उदाहरण कोड
def solve(n, k):
temp = n >> (k - 1)
if temp & 1:
return True
return False
n = 23
k = 3
print(solve(n, k))
इनपुट
23, 3
आउटपुट
True