DEV Community

Cover image for Understanding Recursion with Simple Examples?
Arul .A
Arul .A

Posted on

Understanding Recursion with Simple Examples?

What is Recursion ?
Recursion is when a function calls itself to solve a problem.

Every recursion has 2 mandatory parts:

  1. Base Case (Stopping condition)

If you don’t have this β†’ your program will crash (infinite recursion)

  1. Recursive Call

Function calls itself with a smaller/simpler input

Examples:

1.1 2 3 4 5

flowchart:

-In python :

def display(num):
    if num > 5:   
        return

    print(num)    
    display(num + 1)  

display(1)
Enter fullscreen mode Exit fullscreen mode

output:


-In Java :

class Main {
    static void display(int num) {
        if (num > 5) {   
            return;
        }

        System.out.println(num); 
        display(num + 1);        
    }

    public static void main(String[] args) {
        display(1);
    }
}
Enter fullscreen mode Exit fullscreen mode

-In Javascript:

function display(num) {
    if (num > 5) return;  

    console.log(num);     
    display(num + 1);    
}

display(1);
Enter fullscreen mode Exit fullscreen mode

2.1 3 5 7 9 :

flow chart:

  • In python:
def display(num):
    if num > 9:   
        return

    print(num)
    display(num + 2)   

display(1)

Enter fullscreen mode Exit fullscreen mode

output:

  • In Java :
class Main {
    static void display(int num) {
        if (num > 9) {
            return;
        }

        System.out.println(num);
        display(num + 2);  
    }

    public static void main(String[] args) {
        display(1);
    }
}
Enter fullscreen mode Exit fullscreen mode

-In Javascript:

function display(num) {
    if (num > 9) return;

    console.log(num);
    display(num + 2);  
}

display(1);

Enter fullscreen mode Exit fullscreen mode

3.5 10 15 20 25 :

flow chart :

  • In python:
def display(num):
    if num > 25:   
        return

    print(num)
    display(num + 5)   
display(5)
Enter fullscreen mode Exit fullscreen mode

output:

  • In Java :
class Main {
    static void display(int num) {
        if (num > 25) {
            return;
        }

        System.out.println(num);
        display(num + 5);   
    }

    public static void main(String[] args) {
        display(5);
    }
}
Enter fullscreen mode Exit fullscreen mode

-In Javascript:

function display(num) {
    if (num > 25) return;

    console.log(num);
    display(num + 5);   

display(5);
Enter fullscreen mode Exit fullscreen mode

4.Factorial:

  • In python:
def fact(num, result=1):
    if num > 5:   
        return result

    result *= num
    return fact(num + 1, result)

print("The factorial of given number:", fact(1))
Enter fullscreen mode Exit fullscreen mode
  • In Java :
public class Main {

    static int fact(int num, int result) {
        if (num > 5) {   
            return result;
        }
        result *= num;
        return fact(num + 1, result);
    }

    public static void main(String[] args) {
        System.out.println("The factorial of given number: " + fact(1, 1));
    }
}
Enter fullscreen mode Exit fullscreen mode

-In Javascript:

function fact(num, result = 1) {
    if (num > 5) {   
        return result;
    }
    result *= num;
    return fact(num + 1, result);
}

console.log("The factorial of given number:", fact(1));
Enter fullscreen mode Exit fullscreen mode
  1. Sum of n numbers :
  2. In python:
def sum_n(num, total=0):
    if num > 5:   
        return total

    total += num
    return sum_n(num + 1, total)

print("Sum:", sum_n(1))
Enter fullscreen mode Exit fullscreen mode
  • In Java :
class Main {
    static int sumN(int num, int total) {
        if (num > 5) {
            return total;
        }

        total += num;
        return sumN(num + 1, total);
    }

    public static void main(String[] args) {
        System.out.println("Sum: " + sumN(1, 0));
    }
}
Enter fullscreen mode Exit fullscreen mode

-In Javascript:

function sumN(num, total = 0) {
    if (num > 5) return total;

    total += num;
    return sumN(num + 1, total);
}

console.log("Sum:", sumN(1));
Enter fullscreen mode Exit fullscreen mode

Top comments (0)