Java > Recursion-1 > fibonacci (CodingBat Solution)

Problem:

The fibonacci sequence is a famous bit of mathematics, and it happens to have a recursive definition. The first two values in the sequence are 0 and 1 (essentially 2 base cases). Each subsequent value is the sum of the previous two values, so the whole sequence is: 0, 1, 1, 2, 3, 5, 8, 13, 21 and so on. Define a recursive fibonacci(n) method that returns the nth fibonacci number, with n=0 representing the start of the sequence.

fibonacci(0) → 0
fibonacci(1) → 1
fibonacci(2) → 1


Solution:

public int fibonacci(int n) {
  if (n == 0) return 0;
  else if (n == 1) return 1;
  return fibonacci(n-1) + fibonacci(n-2);
}

3 comments:

  1. public int fibonacci(int n) {
    return (n ==0|| n == 1)? n : fibonacci(n-1) + fibonacci(n-2);
    }

    ReplyDelete
  2. slightly simplified..

    public int fibonacci(int n) {
    if (n <= 1) {
    return n;
    }
    return fibonacci(n - 2) + fibonacci(n - 1);
    }

    ReplyDelete
  3. public int bunnyEars2(int bunnies) {
    if(bunnies == 0) {
    return 0;
    }

    int num = 2;
    if(bunnies % 2 == 0) {
    num = 3;
    }

    return num + bunnyEars2(bunnies - 1);
    }

    ReplyDelete