Recursion in C language

Introduction

Programming में कई problems ऐसी होती हैं जिन्हें हम बार-बार repeat करके solve करते हैं, जैसे:

  • factorial निकालना
  • Fibonacci series
  • tree/recursive structures

इन problems को हम loops से भी solve कर सकते हैं, लेकिन कुछ cases में problem को छोटे-छोटे same type के sub-problems में divide करना ज्यादा आसान होता है।

ऐसी situations में Recursion का उपयोग किया जाता है।

Recursion में एक function खुद को ही call करता है।
यानि function अपने ही smaller version को solve करता है, जब तक कि एक base condition पूरी न हो जाए।

Recursion का concept divide and conquer approach पर based होता है।

यह concept important है क्योंकि:

  • exam में conceptual + program दोनों पूछे जाते हैं
  • logic understanding strong करता है
  • complex problems को simple बनाता है

Definition

Recursion वह process है जिसमें एक function अपने ही function को call करता है, जब तक कि base condition satisfy न हो जाए।

Basic Structure of Recursion

function()
{
if (base condition)
return;
function(); // recursive call
}

Important Concepts

  • Base Condition → recursion को रोकता है
  • Recursive Call → function खुद को call करता है
  • अगर base condition नहीं होगी → infinite recursion होगा

Example 1: Factorial using Recursion

#include <stdio.h>
int fact(int n)
{
if (n == 0)
return 1;
return n * fact(n - 1);
}
int main()
{
int result = fact(5);
printf("%d", result);
return 0;
}

Output:

120

Explanation:

  • fact(5) → 5 × fact(4)
  • fact(4) → 4 × fact(3)
  • fact(0) → 1 (base case)

Final:
5 × 4 × 3 × 2 × 1 = 120

Example 2: Sum of First N Numbers

#include <stdio.h>
int sum(int n)
{
if (n == 0)
return 0;
return n + sum(n - 1);
}
int main()
{
int result = sum(5);
printf("%d", result);
return 0;
}

Output:

15

Explanation:

  • sum(5) → 5 + sum(4)
  • sum(4) → 4 + sum(3)
  • sum(0) → 0

Final:
5 + 4 + 3 + 2 + 1 = 15

Example 3: Fibonacci Series

#include <stdio.h>
int fib(int n)
{
if (n == 0)
return 0;
if (n == 1)
return 1;
return fib(n - 1) + fib(n - 2);
}
int main()
{
int i;
for (i = 0; i < 5; i++)
{
printf("%d ", fib(i));
}
return 0;
}

Output:

0 1 1 2 3

Explanation:

  • fib(0) = 0
  • fib(1) = 1
  • fib(2) = fib(1) + fib(0) = 1
  • fib(3) = 2
  • fib(4) = 3

Example 4: Infinite Recursion (Important)

#include <stdio.h>
void test()
{
printf("Hello\n");
test();
}
int main()
{
test();
return 0;
}

Output:

Hello
Hello
Hello
...

Explanation:

  • कोई base condition नहीं है
  • function खुद को बार-बार call करता है
  • program infinite loop में चला जाता है (stack overflow हो सकता है)

Technical Understanding

Recursion का use इन problems में होता है:

  • factorial, Fibonacci
  • tree traversal
  • divide and conquer algorithms
  • mathematical problems

Difference: Recursion vs Loop

RecursionLoop
Function खुद को call करता हैIteration use करता है
Base condition जरूरी हैLoop condition जरूरी है
Complex problems में usefulSimple repetition में useful

Exam Points

  • Recursion = function calling itself
  • Base condition बहुत जरूरी है
  • Infinite recursion से program crash हो सकता है
  • Factorial और Fibonacci most important examples हैं
  • Conceptual questions अक्सर recursion से पूछे जाते हैं

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top