RECURSION
RECURSION
void functionName() {
if (base_condition)
return;
else
functionName(); // recursive call
}
#include <stdio.h>
int factorial(int n) {
if (n == 0) // base case
return 1;
else
return n * factorial(n - 1); // recursive call
}
int main() {
int num = 5;
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
#include <stdio.h>
int fibonacci(int n) {
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int i, n = 10;
printf("Fibonacci Series up to %d terms:\n", n);
for (i = 0; i < n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
Full Program:
#include <stdio.h>
int factorial(int n) {
if (n == 0) // base case
return 1;
else
return n * factorial(n - 1); // recursive call
}
int main() {
int num = 5;
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
Explanation:
#include <stdio.h>
This is a preprocessor directive that tells the compiler to include the Standard Input
Output library.
It allows the use of printf() for output and scanf() for input.
int factorial(int n)
if (n == 0) return 1;
factorial(1) = 1 * 1 = 1
factorial(2) = 2 * 1 = 2
factorial(3) = 3 * 2 = 6
factorial(4) = 4 * 6 = 24
factorial(5) = 5 * 24 = 120
int main()
int num = 5;
Output:
Factorial of 5 is 120
Code:
void functionName() {
if (base_condition)
return;
else
functionName(); // recursive call
}
🧠 Explanation:
This is a template for a recursive function — a function that calls itself to solve a smaller piece
of the same problem.
Explanation:
void functionName()
🔹 if (base_condition)
This ends the function execution when the base condition is met.
🔹 else functionName();
🧮 Real-Life Analogy:
Now, you start closing each box in reverse — that’s like returning from each recursive call.
#include <stdio.h>
void countdown(int n) {
if (n == 0)
return;
else {
printf("%d\n", n);
countdown(n - 1); // recursive call
}
}
int main() {
countdown(5);
return 0;
}
Output:
5
4
3
2
1
#include <stdio.h>
int sum(int n) {
if (n == 0)
return 0;
else
return n + sum(n - 1);
}
int main() {
int num = 10;
printf("Sum of first %d natural numbers is %d\n", num, sum(num));
return 0;
}