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

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

সমস্যা বিবরণ

একটি রেঞ্জ [L, R] দেওয়া আছে, কাজ হল একটি যুগল (X, Y) খুঁজে বের করা যাতে L ≤ X < Y ≤ R এবং X & Y সমস্ত সম্ভাব্য যুগলের মধ্যে সর্বোচ্চ হয়, তারপর খুঁজে বের করা যুগলের বিটওয়াইজ AND প্রিন্ট করা।

উদাহরণ

যদি L = 1 এবং R = 10 হয় তবে সর্বোচ্চ বিটওয়াইজ AND মান হল ৮ যা নিচের মতো তৈরি হয়:

1000 # 8-এর বাইনারি রিপ্রেজেন্টেশন 
Bitwise AND 
1001 # 9-এর বাইনারি রিপ্রেজেন্টেশন 
---- 
1000 # চূড়ান্ত ফলাফল

অ্যালগরিদম

L থেকে R পর্যন্ত ইটারেট করে প্রতিটি সম্ভাব্য যুগলের জন্য বিটওয়াইজ AND চেক করুন এবং শেষে সর্বোচ্চ মান প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 
int getMaxBitwiseAndValue(int L, int R) { 
    int maxValue = L & R; 
    for (int i = L; i < R; ++i) { 
        for (int j = i + 1; j <= R; ++j) { 
            maxValue = max(maxValue, (i & j)); 
        } 
    } 
    return maxValue; 
} 
int main() { 
    int L = 1, R = 10; 
    cout << "Maximum value = " << getMaxBitwiseAndValue(L, R) << endl; 
    return 0; 
}

আউটপুট

Maximum value = 8
  1. দেওয়া রেঞ্জে ভিন্ন জোড়া (x, y) খুঁজে বের করা যাতে x, y কে ভাগ করত পারে C++-এ

  2. C++-এ C দ্বারা বিভাজ্য এবং [A, B] রেঞ্জের মধ্যে সর্বোচ্চ ধনাত্মক পূর্ণসংখ্যা

  3. C++-এ অজানা সংখ্যাগুলোর দেওয়া গুণফল থেকে সর্বোচ্চ GCD

  4. C++-এ দিয়ে गये GCD এবং LCM থেকে যেকোনো পেয়ার খুঁজে বের করা