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

C++-এ দুটি সংখ্যার ডানপাশের সাধারণ বিটের পজিশন


এই সমস্যাতে, দুটি সংখ্যা M এবং N দেওয়া আছে। আমাদের কাজ হলো দুটি সংখ্যার ডানপাশের সাধারণ বিটের পজিশন (ইনডেক্স) প্রিন্ট করা।

উদাহরণ:

ইনপুট - N = 4, M = 7

আউটপুট - 3

ব্যাখ্যা - (4)2 = 100, (7)2 = 111। ডানপাশের সাধারণ বিট ইনডেক্স ৩-তে।

সমাধানের জন্য, আমাদের দুটি সংখ্যার সব সমান বিট খুঁজে বের করতে হবে। সমান বিট খুঁজতে M এবং N-এর XOR বের করব। তারপর M^N-এর নেগেশনের ডানপাশের বিট বের করব।

এটি একটু জটিল মনে হতে পারে, চলুন এই পদ্ধতিতে একটি উদাহরণ সমাধান করি।

N = 4, M = 7
~N^M = 100.

এখানে ডানপাশের সেট বিট ইনডেক্স ৩-তে।

উদাহরণ

সমাধানের প্রোগ্রাম:

#include <iostream> 
#include <math.h> 
using namespace std; 

int rightSetBit(int N) {
    int bitIndex = log2(N & -N)+1;
    return bitIndex;
}

void rightSameBit(int m, int n) {
    int diffBit = rightSetBit(~(m^n));
    cout << diffBit;
}

int main() {
    int N = 4, M = 7;
    cout << "Postiion of first right same bit of the number " << N << " & " << M << " is ";
    rightSameBit(N, M);
    return 0;
}

আউটপুট

Postiion of first right same bit of the number 4 & 7 is 3

  1. C++-এ দুটি সংখ্যার কমন ডিভাইজর (Common Divisors of Two Numbers)

  2. দুই সংখ্যা গুণ করার C++ প্রোগ্রাম (অপারেটর দিয়ে এবং ছাড়া)

  3. C++ প্রোগ্রাম: দুটি সংখ্যা সোয়াপ (Swap) করা

  4. C++ প্রোগ্রাম: দুটি সংখ্যা যোগ করা (Addition)