पाठ 13 / 38
रिकर्शन
Base case के साथ recursive functions से समस्याएँ हल करें, और समझें कि call stack कैसे बढ़ता है।
रूसी गुड़िया
रिकर्शन एक मात्रियोश्का गुड़िया खोलने जैसा है: हर गुड़िया के अंदर उसकी छोटी प्रति होती है, जब तक सबसे छोटी वाली न मिले जो आगे नहीं खुलती — यही बेस केस है।
फैक्टोरियल
हर रिकर्सिव फंक्शन को एक बेस केस (रिकर्शन रोकता है) और एक रिकर्सिव केस (छोटे इनपुट के साथ खुद को कॉल करता है) चाहिए।
int factorial(int n) {
if (n <= 1) return 1; // base case
return n * factorial(n - 1); // recursive case
}
// factorial(4) -> 4*3*2*1 = 24
Output:
24
स्टैक पर नज़र रखें
हर कॉल कॉल स्टैक में एक फ्रेम जोड़ता है। बेस केस न होने (या गलत होने) पर अनंत रिकर्शन और स्टैक ओवरफ़्लो क्रैश होता है।