🔁 Recursion in C - Complete Guide

What is Recursion?

Recursion is a technique where a function calls itself to solve a problem in smaller sub-parts.

void function() {
    // logic
    function();  // recursive call
}

Every recursive function must have a base case to stop further recursive calls.

Why Use Recursion?

Types of Recursion

How Recursion Works

Every recursive call adds a new frame to the call stack. Once the base case is reached, the stack unwinds returning values.

Example: Factorial

#include <stdio.h>

int factorial(int n) {
    if (n == 0)
        return 1;
    else
        return n * factorial(n - 1);
}

int main() {
    int num = 5;
    printf("Factorial of %d is %d", num, factorial(num));
    return 0;
}

Breakdown:

  1. factorial(5) → 5 * factorial(4)
  2. factorial(4) → 4 * factorial(3)
  3. ...
  4. factorial(0) → 1 (base case)

Real Life Analogies

Practical Use Cases

Recursion in DSA

When Not to Use Recursion

Summary

📚 References