इस समस्या में, हमें 0 से n तक की सभी संख्याओं को प्रिंट करना होता है जो बिटवाइज़ और n के बाइनरी के होते हैं।
आइए अवधारणा को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं।
Input : N = 4. Output : 0 4 Explanation : 0 & 4 = 0 1 & 4 = 0 2 & 4 = 0 3 & 4 = 0 4 & 4 = 4. Input : N = 6 Output : 0, 2, 4, 6
इस समस्या को हल करने के लिए, हमें बिटवाइज़ ऑपरेटरों का उपयोग करने की आवश्यकता है। इनका उपयोग करके हम आवश्यक उपसमुच्चय प्राप्त करेंगे। हम एक अलग अद्यतन फ़ंक्शन का उपयोग करके n से 1 तक पीछे की ओर पुनरावृति करेंगे जो केवल उन मानों का उपयोग करेगा जो रिटर्न कुछ के आउटपुट और संचालन हैं और n के साथ। ऑपरेशन होगा i =(i-1) &N.
इस विचार के आधार पर एक एल्गोरिथम बनाते हैं -
एल्गोरिदम
Step 1 : Loop from n to 1 using decrement operator i = (i-1) & n Step 2 : PRINT i. Step 3 : EXIT.
उदाहरण
उपरोक्त एल्गोरिथम का कार्यक्रम कार्यान्वयन -
#include <iostream> using namespace std; int main() { int n = 11; for (int i = n; i > 0; i = (i - 1) & n) cout << i << " "; cout << 0; return 0; }
आउटपुट
11 10 9 8 3 2 1 0