Recursion becomes easy only with practice.
Here are 10 beginner-friendly problems to master recursion.
1. Print Numbers from 1 to N
Python
def printN(n):
if n == 0:
return
printN(n-1)
print(n)
printN(5)
Java
static void printN(int n){
if(n == 0) return;
printN(n-1);
System.out.println(n);
}
JavaScript
function printN(n){
if(n === 0) return;
printN(n-1);
console.log(n);
}
2. Print Numbers from N to 1
def reverse(n):
if n == 0:
return
print(n)
reverse(n-1)
static void reverse(int n){
if(n == 0) return;
System.out.println(n);
reverse(n-1);
}
function reverse(n){
if(n === 0) return;
console.log(n);
reverse(n-1);
}
4. Factorial
def fact(n):
if n == 1:
return 1
return n * fact(n-1)
static int fact(int n){
if(n == 1) return 1;
return n * fact(n-1);
}
function fact(n){
if(n === 1) return 1;
return n * fact(n-1);
}
4. Sum of N Numbers
def sumN(n):
if n == 0:
return 0
return n + sumN(n-1)
static int sumN(int n){
if(n == 0) return 0;
return n + sumN(n-1);
}
function sumN(n){
if(n === 0) return 0;
return n + sumN(n-1);
}
5. Fibonacci Series
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
static int fib(int n){
if(n <= 1) return n;
return fib(n-1) + fib(n-2);
}
function fib(n){
if(n <= 1) return n;
return fib(n-1) + fib(n-2);
}
6. Reverse a String
def reverseStr(s):
if s == "":
return s
return reverseStr(s[1:]) + s[0]
static String reverseStr(String s){
if(s.equals("")) return s;
return reverseStr(s.substring(1)) + s.charAt(0);
}
function reverseStr(s){
if(s === "") return s;
return reverseStr(s.slice(1)) + s[0];
}
7. Count Digits
def countDigits(n):
if n == 0:
return 0
return 1 + countDigits(n//10)
static int countDigits(int n){
if(n == 0) return 0;
return 1 + countDigits(n/10);
}
function countDigits(n){
if(n === 0) return 0;
return 1 + countDigits(Math.floor(n/10));
}
8. Sum of Digits
def sumDigits(n):
if n == 0:
return 0
return n%10 + sumDigits(n//10)
static int sumDigits(int n){
if(n == 0) return 0;
return (n%10) + sumDigits(n/10);
}
function sumDigits(n){
if(n === 0) return 0;
return (n%10) + sumDigits(Math.floor(n/10));
}
9. Check Palindrome (String)
def isPalindrome(s):
if len(s) <= 1:
return True
return s[0] == s[-1] and isPalindrome(s[1:-1])
static boolean isPalindrome(String s){
if(s.length() <= 1) return true;
return s.charAt(0) == s.charAt(s.length()-1)
&& isPalindrome(s.substring(1, s.length()-1));
}
function isPalindrome(s){
if(s.length <= 1) return true;
return s[0] === s[s.length-1] &&
isPalindrome(s.slice(1, -1));
}
10. Power of a Number (xⁿ)
def power(x, n):
if n == 0:
return 1
return x * power(x, n-1)
static int power(int x, int n){
if(n == 0) return 1;
return x * power(x, n-1);
}
function power(x, n){
if(n === 0) return 1;
return x * power(x, n-1);
}
Top comments (0)