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

C++-এ দুটি সংখ্যার অল্টারনেট বিট দিয়ে নতুন সংখ্যা তৈরি করা

এই সমস্যায় আমাদের দুটি সংখ্যার অল্টারনেট বিট ব্যবহার করে একটি নতুন সংখ্যা তৈরি করতে হবে। অর্থাৎ, দ্বিতীয় সংখ্যার প্রথম বিট, তারপর প্রথম সংখ্যার দ্বিতীয় বিট, তারপর দ্বিতীয় সংখ্যার তৃতীয় বিট, প্রথম সংখ্যার চতুর্থ বিট - এভাবে চলতে থাকবে।

প্রথম থেকে, তৃতীয় বিট আবার দ্বিতীয় সংখ্যা থেকে এবং চতুর্থ বিট প্রথম থেকে - এভাবে।

উদাহরণ দিয়ে বুঝি:

Input: n = 6, m = 10
Output: 2
Explanation: 6-এর বিট = 0110, 10-এর বিট = 1010
0 1 1 0 (n)     ^   ^
1 0 1 0 (m)       ^   ^
= 0 0 1 0 = 2

এই উদাহরণ থেকে স্পষ্ট হয় কী করতে হবে। মূলত সমাধানটি হলো প্রথম সংখ্যা n-এর সেট ইভেন বিট এবং দ্বিতীয় সংখ্যা m-এর সেট অড বিট বের করে তাদের বিটওয়াইজ OR রিটার্ন করা।

আলগরিদম

Step 1: n-এর সেট ইভেন বিটের মান বের করুন।
Step 2: m-এর সেট অড বিটের মান বের করুন।
Step 3: রেজাল্ট = n-এর সেট ইভেন বিট | m-এর সেট অড বিট।
Step 4: রেজাল্ট প্রিন্ট করুন।

C++ প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

int setevenbits(int n) ;
int setoddbits(int m) ;

int main(){
    int n = 12;
    int m = 17;
    int setn = setevenbits(n);
    int setm = setoddbits(m);
    int result = ( setn | setm );
    cout< 0; temp >>= 1) {
        if (count % 2 == 1)
            res |= (1 << count);
        count++;
    }
    return (n & res);
}

int setoddbits(int m){
    int count = 0;
    int res = 0;
    for (int temp = m; temp > 0; temp >>= 1) {
        if (count % 2 == 0)
            res |= (1 << count);
        count++;
    }
    return (m & res);
}

আউটপুট

25
  1. সি++-এ ডাডেনি নম্বর

  2. C++-এ একটি সংখ্যা দুটি অবানড্যান্ট নম্বরের যোগফল হিসেবে প্রকাশ করা যায় কিনা তা যাচাই করা

  3. C++ প্রোগ্রাম: মিস্টেরি নাম্বার (Mystery Number) চেক করা

  4. C++-এ CHAR_BIT