public class Fibonacci {
/* USING ITERATION */
/* returns the nth term in the Fibonacci sequence */
public static int fibonacci(int n) {
int i = 0, j = 1, temp;
for (int term = 1; term < n; term++) {
temp = i;
i = j;
j += temp;
}
return j;
}
/* USING RECURSION */
/* params: i and j are intial two Fibonacci terms; n is the nth term from j
return: the nth term of the Fibonacci sequence (starting from i = 1st term) */
public static int fibonacci(int i, int j, int n) {
if (n > 0)
return fibonacci(j, i+j, n-1); // next term; reduce the number of terms left
else // completed all terms
return i;
}
public static void main(String[] args) {
System.out.println(fibonacci(1)); // 1
System.out.println(fibonacci(2)); // 1
System.out.println(fibonacci(6)); // 8
System.out.println(fibonacci(12)); // 144
System.out.println(fibonacci(0, 1, 1)); // 1
System.out.println(fibonacci(0, 1, 2)); // 1
System.out.println(fibonacci(0, 1, 6)); // 8
System.out.println(fibonacci(0, 1, 12)); // 144
}
}
DOWNLOAD
Created: May 15, 2014
Last Updated: September 21, 2014
Completed in full by: Michael Yaworski