Monday, June 6, 2016

Java Challenge - Triangle Recursive

We have triangle made of blocks. The topmost row has 1 block, the next row down has 2 blocks, the next row has 3 blocks, and so on. Compute recursively (no loops or multiplication) the total number of blocks in such a triangle with the given number of rows.

triangle(0) → 0
triangle(1) → 1
triangle(2) → 3

Hisoka :
1
2
3
4
public int triangle(int rows) {
  if (rows == 0) return 0;
  return rows+triangle(rows-1);
}

Test Result:

Java Challenge - bunnyEars2 Recursive

We have bunnies standing in a line, numbered 1, 2, ... The odd bunnies (1, 3, ..) have the normal 2 ears. The even bunnies (2, 4, ..) we'll say have 3 ears, because they each have a raised foot. Recursively return the number of "ears" in the bunny line 1, 2, ... n (without loops or multiplication).

bunnyEars2(0) → 0
bunnyEars2(1) → 2
bunnyEars2(2) → 5

Hisoka :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public int bunnyEars2(int bunnies) {
  if (bunnies == 0) return 0;
  else if( bunnies % 2 == 0)//genap
  {
      return 3+bunnyEars2(bunnies-1);
  }else
   {
      return 2+bunnyEars2(bunnies-1);
   }
}

Hasil Test :