public class FibArray {

  //code for exercise 13

  public static void main(String[] args) {
    System.out.println("Please type in your number -> ");
    print(fibList(IOUtil.readInt()));
  }

  private static void print(int[] vec) {
  // precondition: list is not empty 
    System.out.print('{');
    for (int item : vec) {
      System.out.print(item + ",");
    }
    System.out.print("\b}"); // \b is backspace - it will overwrite the last char which was a  ','
  }

  private static int[] fibList(int n) {
  assert n>0: "cannot have a list of zero length";
    int[] fibs = new int[n];
    for (int i = 0; i < n; i++) {
      fibs[i] = fib(i);
    }
    return fibs;
  }

  private static int fib(int n) {
    if (n == 0) {
      return 0;
    }
    if (n < 3) {
      return 1;
    }
    return fib(n - 1) + fib(n - 2);
  }
}
