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

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

০ থেকে N পর্যন্ত যেসব সংখ্যার বিটওয়াইজ AND N-এর সাথে N বা ০ হয়, সেগুলো প্রিন্ট করতে হবে। আসলে N-এর সাবমাস্ক (submask) গুলো প্রিন্ট করা হয়।

উদাহরণ: N=4 → আউটপুট: 0 4 (কারণ 0&4=0, 1&4=0, 2&4=0, 3&4=0, 4&4=4)। N=6 → আউটপুট: 0, 2, 4, 6।

বিট ম্যানিপুলেশন ট্রিক

N থেকে ১ পর্যন্ত লুপ চলান, কিন্তু আপডেট: i = (i-1) & N। এটি শুধু সাবমাস্ক গুলো দিয়ে ঘুরে।

আলগরিদম
  1. i = N থেকে শুরু করে i > 0 পর্যন্ত i = (i-1) & N দিয়ে ডিক্রিমেন্ট।
  2. প্রতি i প্রিন্ট করুন।
  3. শেষে ০ প্রিন্ট করুন।
উদাহরণ কোড
#include <iostream>
using namespace std;

int main() {
    int n = 11;
    for (int i = n; i > 0; i = (i - 1) & n)
        cout << i << " ";
    cout << 0;
    return 0;
}
আউটপুট
11 10 9 8 3 2 1 0
  1. C++ প্রোগ্রাম: সংখ্যার সেট ও আনসেট বিটের সংখ্যা সমান কিনা চেক

  2. C++ প্রোগ্রামিং-এ বাইনারি ট্রির প্রতিটি নোডের সেট বিটের সংখ্যা প্রিন্ট করা

  3. C++-এ স্ট্রিংকে নম্বরে এবং নম্বরকে স্ট্রিংএ কনভার্ট করা

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