किसी संख्या को देखते हुए, हमें उसके द्विआधारी निरूपण में अग्रणी शून्यों की संख्या ज्ञात करनी होती है। मान लें कि कुल बिट्स 32 हैं। आइए एक उदाहरण देखें।
इनपुट
5
आउटपुट
25
5 का द्विआधारी प्रतिनिधित्व 00000...00101 है। अग्रणी शून्यों की संख्या 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