// CS 101 Class Example: fibonacci functions // Classic definition of Fibonacci function public static int fibonacci(int n) { if (n < 2) { return n; } else { return fibonacci(n-1) + fibonacci(n-2); } } // Tail recursive Fibonacci (wrapper function) public static int fibIter(int n) { return fibTail(n, 1, 0, 1); } // Tail recursive helper function public static int fibTail(int n, int i, int FibIMinus1, int FibI) { if (i == n) { return FibI; } else { return fibTail(n, i+1, FibI, FibIMinus1 + FibI); } } // While loop version of Fibonacci function public static int fibWhile(int n) { int i = 1; int fibIMinus1 = 0; int fibI = 1; while (i < n) { i ++; int temp = fibIMinus1; fibIMinus1 = fibI; fibI = temp + fibI; } return fibI; }