/** * A measured Fibonacci function. * * @author Samuel A. Rebelsky * @version 1.0 of September 1998 */ public class MeasuredFibonacci { // +--------+--------------------------------------------------- // | Fields | // +--------+ /** The number of steps used to compute the nth Fibonacci number. */ protected int steps; // +---------+-------------------------------------------------- // | Methods | // +---------+ /** * Reset the count of steps to 0. */ public void resetCounter() { steps = 0; } // resetCounter() /** * Determine the number of steps used since the last call to * resetCounter(). */ public int getSteps() { return steps; } // getSteps() /** * Compute the nth Fibonacci number. */ public int fib(int n) { ++steps; // Base case: n is 1 or 2 if ((n == 1) || (n == 2)) { return 1; } // base case // Recursive case else { return fib(n-1) + fib(n-2); } // recursive case } // fib(int) } // class MeasuredFibonacci