Factorial of a number is defined as the product of natural numbers starting from 1 to the number that we want to find factorial for. Mathematically, it is defined as follows.
n! = 1*2*3*4* . . . . . .*(n-1)*n
For example, 5!= 1*2*3*4*5=120
Algorithm or Mathematical Generating Function can be written as follows.
f(n)= 1 if n=0;
f(n)= n*f(n-1) if n>0;
It is very easy to transform above algorithm or generating function into program that uses Recursion. Below one is the implementation in Java.
Factorial of a given number using Recursion in Java
Here is the implementation for Factorial of a number using recursion
package com.jminded.recursion; public class FactorialUsingRecursion { /** * <p>Factorial using Recursion</p> * @author Umashankar * {@link https://jminded.com} * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(factorial(3)); System.out.println(factorial(0)); System.out.println(factorial(-7)); } /** * Recursion :: A method calls to it self * <p>Mathematical defintion of factorial</p> * * f(n)= 1 if n=0; * f(n)= n*f(n-1) if n>0; * * @param n */ public static int factorial(int n){ //base case if(n==0) return 1; //recursive case else if(n>0) return n*factorial(n-1); //for negative numbers and non integers factorial is undefined. else return -1; } }