Recursion is a programming technique where a function calls itself to solve smaller instances of the same problem. It’s elegant but tricky for beginners—let’s break it down with clear examples in Python, JavaScript, and Java.
You’re Not a Senior Developer Until You Have These 8 Traits
Recursion solves problems by:
See document.querySelector() vs. getElementById(): Which is Faster?
def factorial(n):
if n == 1: # Base case
return 1
return n * factorial(n - 1) # Recursive case
print(factorial(5)) # Output: 120
function factorial(n) {
if (n === 1) return 1; // Base case
return n * factorial(n - 1); // Recursive case
}
console.log(factorial(5)); // Output: 120
public class Main {
static int factorial(int n) {
if (n == 1) return 1; // Base case
return n * factorial(n - 1); // Recursive case
}
public static void main(String[] args) {
System.out.println(factorial(5)); // Output: 120
}
}
def fibonacci(n):
if n <= 1: return n # Base case
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(6)) # Output: 8
javascript
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
console.log(fibonacci(6)); // Output: 8
public class Main {
static int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args) {
System.out.println(fibonacci(6)); // Output: 8
}
}
✔ Tree/Graph Traversal (e.g., binary search trees).
✔ Divide & Conquer Algorithms (e.g., mergesort).
✔ Problems with repetitive subproblems (but watch for inefficiency!).
❌ Missing base case → Stack Overflow!
❌ Exponential time complexity (e.g., naive Fibonacci).
Try implementing a recursive sum of numbers from 1
to n
in all three languages!
Move over ChatGPT, there's a new, significantly upgraded player causing a stir. xAI, Elon Musk's…
Choosing the right asset management service is vital. Cloudinary is frequently mentioned, but how does…
Cloudinary is a powerful cloud-based media management platform that allows you to upload, store, manage,…
In a surprising turn of events, former President Donald Trump announced on June 19, 2025,…
Flexbox is a powerful layout system in React Native that allows developers to create responsive…
"The journey of a thousand miles begins with a single step." — Lao Tzu Welcome…