একটি ইন্টিজার 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