static int iterativeRabbit(int n) {
// Iterative solution to the rabbit problem.
  // initialize base cases:
  int previous = 1;   // initially rabbit(1)
  int current = 1;    // initially rabbit(2)
  int next = 1;       // result when n is 1 or 2

  // compute next rabbit values when n >= 3
  for (int i = 3; i <= n; i++) {
    // current is rabbit(i-1), previous is rabbit(i-2)
    next = current + previous;  // rabbit(i)

    previous = current;         // get ready for
    current = next;             // next iteration
  }  // end for

  return next;
}  // end iterativeRabbit