[m, n] পরিসরে (0 <= m <= n <= 2147483647) সব সংখ্যার বিটওয়াইজ AND বের করতে হবে।
উদাহরণ: [5, 7] হলে 5 (101), 6 (110), 7 (111) → AND = 100 (4)।
সমাধানের ধাপসমূহ
i = 0।while (m != n)লুপেm >>= 1,n >>= 1,i++।- শেষে
m << iরিটার্ন করুন।
C++ উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int shift = 0;
while (m != n) {
m >>= 1;
n >>= 1;
shift++;
}
return m << shift;
}
};
int main() {
Solution ob;
cout << ob.rangeBitwiseAnd(5, 7);
}
ইনপুট
5 7
আউটপুট
4