एक संख्या दी गई है, हमें इसके बाइनरी प्रतिनिधित्व में अग्रणी शून्यों की संख्या ढूंढनी है। कुल बिट्स 32 मानकर। आइए एक उदाहरण देखते हैं।
इनपुट
5
आउटपुट
25
5 का बाइनरी प्रतिनिधित्व 00000...00101 है। अग्रणी शून्यों की संख्या 29 है।
नोट: मूल पाठ में आउटपुट 25 दिया गया है लेकिन व्याख्या में 29 लिखा है। यह विरोधाभास प्रतीत होता है।
एल्गोरिदम
- संख्या n को आरंभ करें।
- n का बाइनरी प्रतिनिधित्व ढूंढें।
- कुल बिट्स यानी 32 में से n के बाइनरी प्रतिनिधित्व की लंबाई घटाएं।
- परिणाम लौटाएं।
कार्यान्वयन
उपरोक्त एल्गोरिदम का C++ में कार्यान्वयन निम्नलिखित है:
#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