ইনপুট হিসাবে একটি পূর্ণসংখ্যা দেওয়া হয়েছে৷ লক্ষ্য হল বিটসেট ব্যবহার করে সংখ্যার বাইনারি উপস্থাপনায় অনুগামী শূন্যের সংখ্যা খুঁজে বের করা।
একটি বিটসেট এতে 0 এবং 1 বিট সংরক্ষণ করে। এটি বিটগুলির একটি অ্যারে৷
৷উদাহরণস্বরূপ
ইনপুট
num = 10
আউটপুট
Count of number of trailing zeros in Binary representation of a number using Bitset are: 1
ব্যাখ্যা
The number 10 in binary is represented as 1010 so trailing zeroes in it is 1.
ইনপুট
num = 64
আউটপুট
Count of number of trailing zeros in Binary representation of a number using Bitset are: 6
ব্যাখ্যা
The number 64 in binary is represented as 10000000 so trailing zeroes in it is 6.
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি −
এই পদ্ধতিতে আমরা বিটসেট ব্যবহার করছি। আমরা | ব্যবহার করে num সহ বিটসেট সেট করব। এখন লুপ ব্যবহার করে বিটসেট ট্র্যাভার্স করুন, প্রথম 1 এর সম্মুখীন হওয়ার সাথে সাথে লুপটি ভেঙ্গে দিন অন্যথায় শূন্যের পিছনের সংখ্যা বৃদ্ধি করুন।
-
ইনপুট হিসাবে একটি পূর্ণসংখ্যা নিন।
-
ফাংশন trailing_zeroes(int num) num নেয় এবং বিটসেট ব্যবহার করে একটি সংখ্যার বাইনারি প্রতিনিধিত্বে ট্রেলিং শূন্যের সংখ্যার সংখ্যা ফেরত দেয়।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
একটু বিটসেট আরার নিন।
-
এটিকে arr |=num হিসাবে num দিয়ে সেট করুন।
-
i=0 থেকে i<64 পর্যন্ত লুপ ব্যবহার করে ট্রাভার্স arr। যদি arr[i] 0 হয় তাহলে ইনক্রিমেন্ট কাউন্ট অন্যথায় লুপ ভেঙ্গে যায়।
-
লুপের শেষে ফলাফল হিসাবে গণনা করুন।
উদাহরণ
#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<<"Count of number of trailing zeros in Binary representation of a number using Bitset are: "<<trailing_zeroes(num); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of number of trailing zeros in Binary representation of a number using Bitset are: 1