यहां हम समस्या का एक मुश्किल समाधान देखेंगे। हम 1 से N तक की कुछ संख्याओं को बिना किसी अर्धविराम के प्रिंट करेंगे।
हम इस समस्या को दो अलग-अलग तरीकों से हल कर सकते हैं। पहला पुनरावृत्त विधि है, और दूसरा पुनरावर्ती विधि है।
विधि 1
Printf () फ़ंक्शन स्ट्रिंग की लंबाई लौटाता है, इसलिए यह एक गैर-शून्य मान है। हम परिणाम को प्रिंट करने की शर्त के साथ तार्किक और प्रदर्शन कर सकते हैं। फिर काउंटर का मूल्य बढ़ाएँ।
उदाहरण कोड
#include<stdio.h> #define N 20 int main(int num, char *argv[]) { while (num <=N && printf("%d ", num) && num++) { //The while body is empty. } }
आउटपुट
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
विधि 2
दूसरी विधि में हम देखेंगे कि रिकर्सन का उपयोग करके समान कार्य कैसे करें। हम मुख्य समारोह के साथ कुछ तर्क देंगे। इस मुख्य को पुनरावर्ती रूप से कहा जाएगा।
उदाहरण कोड
#include<stdio.h> #define N 20 main(int val) { if (val <=N && printf("%d ", val) && main(val + 1)) { //Body is empty } }
आउटपुट
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20