কম্পিউটার টিউটোরিয়াল

C++-এ সংখ্যা পরিসরের বিটওয়াইজ AND


[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
  1. C++-এ একটি সংখ্যা N-এর বিটওয়াইজ AND সাবসেট প্রিন্ট করুন

  2. C++-এ দেওয়া রেঞ্জ থেকে সর্বোচ্চ বিটওয়াইজ AND যুগল

  3. C++-এ বিটওয়াইজ AND (Bitwise AND) কী?

  4. পাইথনে রেঞ্জের সব নম্বরের বিটওয়াইজ AND বের করা