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

C/C++ প্রোগ্রাম: ইন্টিজারে সেট বিট গণনা করা


এখানে আমরা দেখব কীভাবে একটি ইন্টিজার সংখ্যায় সেট বিটের সংখ্যা বের করা যায়। সেট বিট হলো একটি সংখ্যার বাইনারি রিপ্রেজেন্টেশনে ১ها। উদাহরণস্বরূপ, সংখ্যা ১৩-র তিনটি সেট বিট আছে ১১০১। তাই কাউন্ট হবে ৩।

এই সমস্যাটি সমাধানের জন্য আমরা সংখ্যাকে ডানে শিফ্ট করব, এবং যদি LSB ১ হয়, তবে কাউন্ট বাড়াব। যতক্ষণ না সংখ্যা ০ হয়, ততক্ষণ চলবে।

অ্যালগরিদম

countSetBit()

begin count := 0 while count is not 0, do if LSb of n is set, then count := count + 1 end if n := n after shifting 1 bit to right done return count end

উদাহরণ

#include using namespace std; int count_set_bit(int n) { int count = 0; while(n != 0) { if(n & 1 == 1) { count++; } n = n >> 1; //right shift 1 bit } return count; } int main() { int n; cout << "Enter a number: "; cin >> n; cout << "Number of set bits: " << count_set_bit(n); }

আউটপুট

Enter a number: 29 Number of set bits: 4

এই প্রোগ্রাম C-তে কম্পাইল ও রান হবে, কিন্তু C++-তে কম্পাইল টাইমে এরর দেবে। এটি বলবে 너무나 argumentos are passed।


  1. সি/সি++ প্রোগ্রামে কনসিকিউটিভ ১ ছাড়া বাইনারি স্ট্রিং গণনা করা

  2. সি/সি++ প্রোগ্রাম: nth ক্যাটালান সংখ্যা (Catalan Number)

  3. সি/সি++ প্রোগ্রাম: ফ্যাক্টোরিয়ালে ট্রেলিং শূন্যের সংখ্যা গণনা

  4. C-এ ফ্লোটিং পয়েন্ট সংখ্যার সেট বিট গণনা করা