কম্পিউটার

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


এই সমস্যায়, আমাদের দুটি সংখ্যার বিকল্প বিট ব্যবহার করে একটি সংখ্যা তৈরি করতে হবে . সুতরাং, এই সমস্যায় আমরা দ্বিতীয় সংখ্যা থেকে প্রথম বিট, তারপর প্রথম থেকে দ্বিতীয় বিট, দ্বিতীয় নম্বর থেকে তৃতীয় বিট এবং প্রথম থেকে এগিয়ে এবং আরও অনেক কিছু ব্যবহার করব।

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

বিষয়টি আরও ভালোভাবে বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

Input : n = 6 m = 10
Output : 2
Explanation :
Bits representation of 6 = 0110
Bit representation of 10 = 1010
0 1 1 0
^ ^
1 0 1 0
^ ^
= 0 0 1 0 = 2

এখন, এই উদাহরণের মাধ্যমে, পয়েন্টটি পরিষ্কার যে কোডটি সমাধান করতে আমাদের কী করতে হবে। মূলত সমাধান হল দ্বিতীয় সংখ্যার LSB থেকে শুরু করে নম্বরগুলি থেকে বিকল্প বিট নেওয়া৷

এই সমস্যাটি সমাধান করার জন্য একটি সম্ভাব্য পদ্ধতি হল প্রথম সংখ্যা n-এর সেট জোড় বিটগুলি খুঁজে বের করা। এবং তারপর দ্বিতীয় সংখ্যা m এর সেট বিজোড় বিট খুঁজুন এবং bitwise OR ফেরত দিন দুটির মধ্যে।

অ্যালগরিদম

Step 1 : For n find the value of set even bits.
Step 2 : For m find the value of set odd bits.
Step 3 : Calculate the result = set even bits of n | set odd bits of m.
Step 4: Print the value of result.

উদাহরণ

#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<<result;
   return 0;
}
int setevenbits(int n){
   int temp = n;
   int count = 0;
   int res = 0;
   for (temp = n; temp > 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++ এ একটি রহস্য সংখ্যা কিনা তা পরীক্ষা করুন

  4. C++ এ CHAR_BIT