एक संख्या n को देखते हुए, हमें उनके बाइनरी रूप में विषम संख्या में सेट बिट्स के साथ पूर्णांकों की संख्या ज्ञात करनी होगी। आइए एक उदाहरण देखें।
इनपुट
n = 10
आउटपुट
5
1 से 10 तक के 5 पूर्णांक हैं जिनके बाइनरी रूप में विषम संख्या में सेट बिट्स हैं।
एल्गोरिदम
-
नंबर एन शुरू करें।
- बाइनरी रूप में सेट बिट्स की संख्या गिनने के लिए एक फ़ंक्शन लिखें।
-
गिनती शुरू करें 0.
-
एक लूप लिखें जो 1 . से पुनरावृत्त हो करने के लिए एन.
-
प्रत्येक पूर्णांक के सेट बिट्स की गणना करें।
-
यदि सेट बिट्स की संख्या विषम है तो गिनती बढ़ाएँ।
-
-
गिनती वापस करें।
कार्यान्वयन
C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है
#include <bits/stdc++.h> using namespace std; int getSetBitsCount(int n) { int count = 0; while (n) { if (n % 2 == 1) { count += 1; } n /= 2; } return count; } int getOddSetBitsIntegerCount(int n) { int count = 0; for (int i = 1; i <= n; i++) { if (getSetBitsCount(i) % 2 == 1) { count += 1; } } return count; } int main() { int n = 10; cout << getOddSetBitsIntegerCount(n) << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
5