JavaScript - Recursive Function
A function which can call itself is known as recursive function. A recursive function generally ends with one or more boundary conditions which defines exit conditions from the function, otherwise it will go into an infinite loop.
Example: Factorial of a number
The factorial of a positive integer is the multiplication of all positive integer less than or equal to that number.
factorial of number n = n! = n(n-1)(n-2)...1
In the example below, a recursive function called factorial() is used to calculate factorial of a number.
function factorial(x){ if (x == 0) { return 1; } else { return x*factorial(x-1); } } var txt; txt = "factorial(3): " + factorial(3) + "<br>"; txt = txt + "factorial(5): " + factorial(5) + "<br>"; txt = txt + "factorial(10): " + factorial(10) + "<br>";
The output (value of txt) after running above script will be:
factorial(3): 6 factorial(5): 120 factorial(10): 3628800
Example: Fibonacci Sequence
Fibonacci terms are generally represented as Fn. A Fibonacci term is the sum of two previous terms and starts with 0 and 1. Mathematically, it can be represented as:
Fn = Fn-1 + Fn-2
With boundary conditions: F0 = 0 and F1 = 1
The Fibonacci Sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233...
In the example below, a recursive function called fib() is created to find out the nth term of Fibonacci sequence.
function fib(n){ if (n == 0) { return 0; } else if (n == 1) { return 1; } else { return fib(n-1) + fib(n-2); } } var txt; txt = "Fibonacci 5th term: " + fib(5) + "<br>"; txt = txt + "Fibonacci 6th term: " + fib(6) + "<br>"; txt = txt + "Fibonacci 7th term: " + fib(7) + "<br>";
The output (value of txt) after running above script will be:
Fibonacci 5th term: 5 Fibonacci 6th term: 8 Fibonacci 7th term: 13
❮ JavaScript - Functions