// 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
 
#include <stdio.h>
 
// To enable debug messages uncomment #define
#define TEST 1
 
int triangle(int rows);
void startTesting();
 
int main(void) {
#ifdef TEST
    startTesting();
#endif
 
	return 0;
}
 
int triangle(int rows) {
  if (rows == 0) {
      return 0;
  }
  
  if (rows == 1) {
      return 1;
  }
  
  return rows + triangle(rows - 1);
} 

void startTesting()
{
    int result = 0;
    int i = 0;
 
    for (i = 0; i <= 5; i++) {
        result = triangle(i);
 
         printf("Triangle(%d) = %d\n", i, result);
    }
}