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