Factorial Algorithm

The Factorial Algorithm is an essential mathematical function that computes the factorial of a given non-negative integer, which is denoted as n!. Factorial of a number n is the product of all positive integers less than or equal to n, and it is a crucial concept in combinatorics, algebra, and calculus. In simple terms, n! represents the total number of ways to arrange n distinct items, making it a core concept in permutation and combination problems. The algorithm is defined as n! = n * (n-1) * (n-2) * ... * 1, where the factorial of 0 (0!) is defined as 1 by convention. There are several ways to implement the Factorial Algorithm, including iterative, recursive, and divide-and-conquer approaches. The iterative approach involves using a loop to multiply the numbers from 1 to n, while the recursive approach uses a function that calls itself with decreasing values of n until it reaches 1 or 0. The divide-and-conquer approach, on the other hand, recursively breaks down the problem into smaller subproblems and combines their solutions to obtain the final result. The Factorial Algorithm has numerous applications in mathematics, computer science, and real-world problems, such as calculating probabilities, counting permutations and combinations, solving differential equations, and evaluating complex integrals.
package Maths;
import java.util.*; //for importing scanner

public class Factorial {
    public static void main(String[] args) { //main method
           int n = 1;
           Scanner sc= new Scanner(System.in);
           System.out.println("Enter Number");
           n=sc.nextInt();
           System.out.println(n + "! = " + factorial(n));
    }

    //Factorial = n! = n1 * (n-1) * (n-2)*...1

    /**
     * Calculate factorial N
     *
     * @param n the number
     * @return the factorial of {@code n}
     */
    public static long factorial(int n) {
        // Using recursion
        try {
        	if (n == 0) {
				return 1; // if n = 0, return factorial of n;
			}else {
				return n*factorial(n-1); // While N is greater than 0, call the function again, passing n-1 (Principle of factoring);
			}
        }catch (ArithmeticException e) {
			System.out.println("Dont work with less than 0");
		}
		return n;
    }
}

LANGUAGE:

DARK MODE: