এই সমস্যায়, আমাদের n এবং k দুটি সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল k th প্রিন্ট করা সংখ্যার ন্যূনতম তাৎপর্যপূর্ণ বিট।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক
Input: n = 12 , k = 3 Output 1 Explanation: Let’s see the binary representation of n: 12 = 1100
এখন, তৃতীয় সর্বনিম্ন উল্লেখযোগ্য বিট হল 1.
এই সমস্যা সমাধানের জন্য আমরা সংখ্যার বাইনারি বিট ব্যবহার করব। এবং সংখ্যার kth বিট ফলন। এর জন্য, আমরা সংখ্যাটির বাইনারি শিফটিং ব্যবহার করব এবং সংখ্যাটি (k-1) বার বাম-শিফ্ট করব। এখন স্থানান্তরিত নম্বর এবং আসল নম্বরের শেষ অপারেশন করার সময় যা kth বিটের মান দেবে।
উদাহরণ
নিচের কোডটি আমাদের সমাধানের বাস্তবায়ন দেখাবে
#include <bits/stdc++.h> using namespace std; int main() { int N = 12, K = 3; cout<<K<<"th significant bit of "<<N<<" is : "; bool kthLSB = (N & (1 << (K-1))); cout<<kthLSB; return 0; }
আউটপুট
3th significant bit of 12 is : 1