001 /**
002 * This is part of CSE 331 Problem Set 0.
003 */
004 package ps0;
005
006 /**
007 * Fibonacci calculates the <var>n</var>th term in the Fibonacci sequence.
008 *
009 * The first two terms of the Fibonacci sequence are both 1,
010 * and each subsequent term is the sum of the previous two terms.
011 *
012 * @author mbolin
013 */
014 public class Fibonacci {
015
016 /**
017 * Calculates the desired term in the Fibonacci sequence.
018 *
019 * @param n the index of the desired term; the first index of the sequence is 0
020 * @return the <var>n</var>th term in the Fibonacci sequence
021 * @throws IllegalArgumentException if <code>n</code> is not a nonnegative number
022 */
023 public int getFibTerm(int n) {
024 if (n <= 0) {
025 throw new IllegalArgumentException(n + " is negative");
026 } else if (n <= 2) {
027 return 1;
028 } else {
029 return getFibTerm(n - 1) - getFibTerm(n - 2);
030 }
031 }
032
033 }