// FibonacciRecursionDemo.java
public class FibonacciRecursionDemo
{
public static long fibonacci(int n)
{
System.out.println("fibonacci begin: n=" + n);
long toReturn;
if ( n > 1 )
toReturn = fibonacci(n-1) + fibonacci(n-2);
else if ( n == 0 || n == 1 )
toReturn = n;
else
throw new IllegalArgumentException("n=" + n + " must be > 0.");
System.out.println("fibonacci end: n=" + n + ", toReturn=" + toReturn);
return toReturn;
} // method fibonacci
public static void main(String[] args)
{
int n = 6;
System.out.println("The " + addSuffix(n)
+ " Fibonacci number is "
+ fibonacci(n) + ".");
} // method main
private static String addSuffix(int n)
{
String numberSuffix;
if ( n == 1 )
numberSuffix = "st";
else if ( n == 2 )
numberSuffix = "nd";
else if ( n == 3 )
numberSuffix = "rd";
else
numberSuffix = "th";
return (n + numberSuffix);
} // method addSuffix
} // class FibonacciRecursionDemo