/** A class of static recursive mathematical functions. */ public class MathRecursion { /** Yields: n! */ public static int factorial(int n) { if (n==0) { // Base case return 1; } // Recursive case. return n*factorial(n-1); } /** Yields: the nth Fibonacci number a_n = a_{n-1}+a_{n-2}*/ public static int fibonacci(int n) { if (n==0 || n==1) { // Base cases return 1; } // Recursive case. return fibonacci(n-1)+fibonacci(n-2); } }