हमें एक पूर्णांक चर दिया जाता है क्योंकि N धनात्मक पूर्णांक प्रकार मान को संग्रहीत करता है। कार्य अंक 1, 3 या दोनों के संयोजन वाले दिए गए मान N से कम सभी संख्याओं को पुनरावर्ती रूप से प्रिंट करना है।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - पूर्णांक संख्या =40
आउटपुट - एन से कम सभी नंबरों को प्रिंट करने के लिए रिकर्सिव प्रोग्राम जिसमें केवल 1 या 3 अंक होते हैं:33 31 13 11 3 1
स्पष्टीकरण - हमें एक सकारात्मक पूर्णांक मान दिया जाता है क्योंकि 40 एक चर संख्या में संग्रहीत होता है। अब, हम उन सभी संख्याओं का पुनरावर्ती रूप से पता लगाएंगे जिनमें अंक 1, 3 या दोनों हैं और 40 से कम संख्याएं 1, 3, 11, 13, 31, 33 हैं
इनपुट - इंट संख्या =5
आउटपुट - एन से कम सभी नंबरों को प्रिंट करने के लिए रिकर्सिव प्रोग्राम जिसमें केवल 1 या 3 अंक होते हैं:3 1
स्पष्टीकरण - हमें एक सकारात्मक पूर्णांक मान दिया जाता है क्योंकि 40 एक चर संख्या में संग्रहीत होता है। अब, हम उन सभी संख्याओं का पुनरावर्ती रूप से पता लगाएंगे जिनमें अंक 1, 3 या दोनों हैं और वे संख्याएँ जो 5 से कम हैं, 1 और 3 हैं।
इनपुट - इंट नंबर =1
आउटपुट - गलत इनपुट
स्पष्टीकरण - हमें एक धनात्मक पूर्णांक मान दिया जाता है क्योंकि 1 एक चर संख्या में संग्रहीत होता है। अब, हम उन सभी संख्याओं का पुनरावर्ती रूप से पता लगाएंगे जिनमें अंक 1, 3 या दोनों हैं और 1 से कम संख्या 0 हैं क्योंकि 1 से कम एकमात्र सकारात्मक पूर्णांक 0 है, इसलिए आउटपुट गलत इनपुट है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
एक पूर्णांक चर को संख्या के रूप में इनपुट करें। फ़ंक्शन के पैरामीटर के रूप में num पास करके इसे फ़ंक्शन में Recursive_Numbers(num) पास करें।
-
समारोह के अंदर Recursive_Numbers(num)
-
एक चर को बूल प्रकार के चेक के रूप में घोषित करें और इसे 1 के साथ सेट करें।
-
जाँच करें कि क्या संख्या 0 से अधिक है, फिर प्रारंभ करें जबकि अस्थायी 0 से अधिक है और 1 पर जाँच करें। अंक को अस्थायी% 10 पर सेट करें।
-
जांचें कि IF अंक 1 के बराबर नहीं है और अंक 3 के बराबर नहीं है तो चेक को 0 पर सेट करें। अस्थायी =अस्थायी / 10 सेट करें।
-
चेक करें अगर चेक 1 है तो प्रिंट नंबर।
-
समारोह में पुनरावर्ती कॉल करें Recursive_Numbers(num - 1)
-
उदाहरण
#include <iostream> using namespace std; void Recursive_Numbers(int num){ bool check = 1; int temp = num; if(num > 0){ while(temp > 0 && check == 1){ int digit = temp % 10; if (digit != 1 && digit != 3){ check = 0; } temp = temp / 10; } if(check == 1){ cout<< num << " "; } Recursive_Numbers(num - 1); } } int main(){ int num = 40; if(num <= 1){ cout<<"Wrong input"; } else{ cout<<"Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: "; Recursive_Numbers(num); } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 31 13 11 3 1