Recursion is the process of defining something in terms of itself. As it relates to java programming, recursion is the attribute that allows a method to call itself. A method that calls itself is said to be recursive.
Every recursion should have the following characteristics
A simple base case which we have a solution for and a return value.
A way of getting our problem closer to the base case. I.e. a way to chop out part of the problem to get a somewhat simpler problem.
A recursive call which passes the simpler problem back into the method.
long fact(long a)
if(a <= 1)
public static void main (String arr) throws IOException
System.out.println("Enter a number to find factorial");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt( br.readLine());
Factorial f = new Factorial();