DEV Community

PONVEL M
PONVEL M

Posted on

10 Simple Recursion Problems (Java, JavaScript, Python)

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)
Enter fullscreen mode Exit fullscreen mode

Java

static void printN(int n){
    if(n == 0) return;
    printN(n-1);
    System.out.println(n);
}
Enter fullscreen mode Exit fullscreen mode

JavaScript

function printN(n){
    if(n === 0) return;
    printN(n-1);
    console.log(n);
}
Enter fullscreen mode Exit fullscreen mode

2. Print Numbers from N to 1

def reverse(n):
    if n == 0:
        return
    print(n)
    reverse(n-1)
Enter fullscreen mode Exit fullscreen mode
static void reverse(int n){
    if(n == 0) return;
    System.out.println(n);
    reverse(n-1);
}
Enter fullscreen mode Exit fullscreen mode
function reverse(n){
    if(n === 0) return;
    console.log(n);
    reverse(n-1);
}
Enter fullscreen mode Exit fullscreen mode

4. Factorial

def fact(n):
    if n == 1:
        return 1
    return n * fact(n-1)
Enter fullscreen mode Exit fullscreen mode
static int fact(int n){
    if(n == 1) return 1;
    return n * fact(n-1);
}
Enter fullscreen mode Exit fullscreen mode
function fact(n){
    if(n === 1) return 1;
    return n * fact(n-1);
}
Enter fullscreen mode Exit fullscreen mode

4. Sum of N Numbers

def sumN(n):
    if n == 0:
        return 0
    return n + sumN(n-1)
Enter fullscreen mode Exit fullscreen mode
static int sumN(int n){
    if(n == 0) return 0;
    return n + sumN(n-1);
}
Enter fullscreen mode Exit fullscreen mode
function sumN(n){
    if(n === 0) return 0;
    return n + sumN(n-1);
}
Enter fullscreen mode Exit fullscreen mode

5. Fibonacci Series

def fib(n):
    if n <= 1:
        return n
    return fib(n-1) + fib(n-2)
Enter fullscreen mode Exit fullscreen mode
static int fib(int n){
    if(n <= 1) return n;
    return fib(n-1) + fib(n-2);
}
Enter fullscreen mode Exit fullscreen mode
function fib(n){
    if(n <= 1) return n;
    return fib(n-1) + fib(n-2);
}
Enter fullscreen mode Exit fullscreen mode

6. Reverse a String

def reverseStr(s):
    if s == "":
        return s
    return reverseStr(s[1:]) + s[0]
Enter fullscreen mode Exit fullscreen mode
static String reverseStr(String s){
    if(s.equals("")) return s;
    return reverseStr(s.substring(1)) + s.charAt(0);
}
Enter fullscreen mode Exit fullscreen mode
function reverseStr(s){
    if(s === "") return s;
    return reverseStr(s.slice(1)) + s[0];
}
Enter fullscreen mode Exit fullscreen mode

7. Count Digits

def countDigits(n):
    if n == 0:
        return 0
    return 1 + countDigits(n//10)
Enter fullscreen mode Exit fullscreen mode
static int countDigits(int n){
    if(n == 0) return 0;
    return 1 + countDigits(n/10);
}
Enter fullscreen mode Exit fullscreen mode
function countDigits(n){
    if(n === 0) return 0;
    return 1 + countDigits(Math.floor(n/10));
}
Enter fullscreen mode Exit fullscreen mode

8. Sum of Digits

def sumDigits(n):
    if n == 0:
        return 0
    return n%10 + sumDigits(n//10)
Enter fullscreen mode Exit fullscreen mode
static int sumDigits(int n){
    if(n == 0) return 0;
    return (n%10) + sumDigits(n/10);
}
Enter fullscreen mode Exit fullscreen mode
function sumDigits(n){
    if(n === 0) return 0;
    return (n%10) + sumDigits(Math.floor(n/10));
}
Enter fullscreen mode Exit fullscreen mode

9. Check Palindrome (String)

def isPalindrome(s):
    if len(s) <= 1:
        return True
    return s[0] == s[-1] and isPalindrome(s[1:-1])
Enter fullscreen mode Exit fullscreen mode
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));
}
Enter fullscreen mode Exit fullscreen mode
function isPalindrome(s){
    if(s.length <= 1) return true;
    return s[0] === s[s.length-1] &&
           isPalindrome(s.slice(1, -1));
}
Enter fullscreen mode Exit fullscreen mode

10. Power of a Number (xⁿ)

def power(x, n):
    if n == 0:
        return 1
    return x * power(x, n-1)
Enter fullscreen mode Exit fullscreen mode
static int power(int x, int n){
    if(n == 0) return 1;
    return x * power(x, n-1);
}
Enter fullscreen mode Exit fullscreen mode
function power(x, n){
    if(n === 0) return 1;
    return x * power(x, n-1);
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)