Monday, June 6, 2016

Java Challenge - fibonacci recursive

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

Hisoka :
1
2
3
4
public int fibonacci(int n) {
  if(n == 0 || n == 1) return n;
  return fibonacci(n-1)+fibonacci(n-2);
}

Hasil:

Codingbat:
Codingbat g' ngasih jawaban... :v

Java Challenge - factorial

Given n of 1 or more, return the factorial of n, which is n * (n-1) * (n-2) ... 1. Compute the result recursively (without loops).

factorial(1) → 1
factorial(2) → 2
factorial(3) → 6

Hisoka:
1
2
3
4
public int factorial(int n) {
  if(n == 1) return 1;
  return n*factorial(n-1);
}

Hasil:

Codingbat:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public int factorial(int n) {
  // Base case: if n is 1, we can return the answer directly
  if (n == 1) return 1;
  
  // Recursion: otherwise make a recursive call with n-1
  // (towards the base case), i.e. call factorial(n-1).
  // Assume the recursive call works correctly, and fix up
  // what it returns to make our result.
  return n * factorial(n-1);
}

Woooh...sama yaaak... :D