একটি সংখ্যা দেওয়া আছে। এর ৩২-বিট বাইনারি রিপ্রেজেন্টেশনে কতগুলো লিডিং জিরো আছে, তা বের করতে হবে।
উদাহরণ: n=5 হলে বাইনারি 000...00101, লিডিং জিরো ২৯টি (আউটপুটে ২৫ লেখা আছে, সম্ভবত ৩২-বিট ধরা হয়েছে)۔
অ্যালগরিদম
- n আরম্ভ করুন
- totalBits = sizeof(n) * 8 (সাধারণত ৩২)
- while(n): বাইনারি স্ট্রিং বানান (n%2, n/=2)
- লিডিং জিরো = totalBits - binary.length()
ইমপ্লিমেন্টেশন
#include <bits/stdc++.h> using namespace std; int getLeadingZeroesCount(unsigned int n) { int totalBits = sizeof(n) * 8; string binary = ""; while (n) { int remainder = n % 2; if (remainder || binary.length() > 0) binary += remainder; n /= 2; } return totalBits - binary.length(); } int main() { int n = 101; cout << getLeadingZeroesCount(n) << endl; return 0; }আউটপুট
25