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

C++-এ Bitset ব্যবহার করে একটি সংখ্যার বাইনারি রিপ্রেজেন্টেশনে ট্রেলিং জিরোর সংখ্যা গণনা


একটি ইন্টিজার num ইনপুট হিসেবে দেওয়া আছে। লক্ষ্য হলো num-এর বাইনারি রিপ্রেজেন্টেশনে শেষে কতগুলো ০ আছে সেটি bitset ব্যবহার করে বের করা।

একটি bitset ০ এবং ১ বিটগুলো সংরক্ষণ করে। এটি বিটের একটি অ্যারে।

উদাহরণ ১

ইনপুট

num = 10

আউটপুট

Bitset ব্যবহার করে বাইনারি রিপ্রেজেন্টেশনে ট্রেলিং জিরোর সংখ্যা: 1

ব্যাখ্যা

সংখ্যা ১০ বাইনারিতে ১০১০ হিসেবে প্রকাশিত হয়, তাই শেষে ১টি ০ আছে।

উদাহরণ ২

ইনপুট

num = 64

আউটপুট

Bitset ব্যবহার করে বাইনারি রিপ্রেজেন্টেশনে ট্রেলিং জিরোর সংখ্যা: 6

ব্যাখ্যা

সংখ্যা ৬৪ বাইনারিতে ১০০০০০০০ হিসেবে প্রকাশিত হয়, তাই শেষে ৬টি ০ আছে।

প্রয়োগ করা পদ্ধতি

এই পদ্ধতিতে bitset ব্যবহার করা হয়। num দিয়ে bitset-কে | অপারেটর দিয়ে সেট করা হয়। এরপর for লুপ দিয়ে bitset ট্রুভার্স করা হয়, প্রথম ১ পাওয়া যাওয়ায় লুপ ব্রেক করা হয়, অন্যথায় ট্রেলিং জিরোর জন্য কাউন্ট বাড়ানো হয়।

  • ইনপুট হিসেবে ইন্টিজার num নিন।

  • trailing_zeroes(int num) ফাংশনটি ট্রেলিং জিরোর সংখ্যা রিটার্ন করে।

  • আরম্ভিক কাউন্ট ০ রাখুন।

  • একটি bitset arr নিন।

  • arr |= num দিয়ে num দিয়ে সেট করুন।

  • for লুপ দিয়ে i=0 থেকে i<64 পর্যন্ত arr ট্রুভার্স করুন। যদি arr[i] ০ হয় তবে কাউন্ট বাড়ান, অন্যথায় লুপ ব্রেক করুন।

  • লুপ শেষে কাউন্ট রিটার্ন করুন ফলাফল হিসেবে।

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

int trailing_zeroes(int num) {
    int count = 0; 
    bitset<64> arr; 
    arr |= num; 
    
    for (int i = 0; i < 64; i++) {
        if (arr[i] == 0) {
            count++; 
        } else {
            break; 
        } 
    } 
    
    return count; 
} 

int main() { 
    int num = 6; 
    cout << "Bitset ব্যবহার করে বাইনারি রিপ্রেজেন্টেশনে ট্রেলিং জিরোর সংখ্যা: " << trailing_zeroes(num); 
    return 0; 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:

Bitset ব্যবহার করে বাইনারি রিপ্রেজেন্টেশনে ট্রেলিং জিরোর সংখ্যা: 1

  1. C++ দিয়ে B বেসে N!-এর末尾 শূন্যের সংখ্যা বের করা

  2. C++ দিয়ে বেস ১৬-এ N!-এর শেষ শূন্যের সংখ্যা বের করা

  3. C++-এ বাইনারি রিপ্রেজেন্টেশনে লিডিং জিরোর সংখ্যা বের করা

  4. OpenCV-এ C++ ব্যবহার করে চেহারার সংখ্যা গণনা করা