Sha256: 7ecddc16bec979f32d6d1dcfe19b4b96cc3c5577533945379c1ba7af357dbdbf

Contents?: true

Size: 751 Bytes

Versions: 261

Compression:

Stored size: 751 Bytes

Contents

#include "pascals_triangle.h"

void free_triangle(size_t ** mem_block, size_t n)
{
   for (size_t i = 0; i < n; i++) {
      free(mem_block[i]);
   }
   free(mem_block);
}

size_t **create_triangle(int rows)
{
   if (rows == 0) {
      size_t **zero = calloc(1, sizeof(size_t *));
      zero[0] = calloc(1, sizeof(size_t));
      return zero;
   } else if (rows < 0) {
      return NULL;
   }
   size_t **result = calloc(rows, sizeof(size_t *));
   for (int i = 0; i < rows; i++) {
      result[i] = calloc(rows, sizeof(size_t));
   }
   result[0][0] = 1;
   for (int i = 1; i < rows; ++i) {
      result[i][0] = 1;
      for (int j = 1; j <= i; ++j) {
         result[i][j] = result[i - 1][j] + result[i - 1][j - 1];
      }
   }
   return result;
}

Version data entries

261 entries across 261 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.179 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.178 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.177 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.176 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.175 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.174 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.173 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.172 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.171 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.170 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.169 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.167 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.166 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.165 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.164 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.163 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.162 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.161 tracks/c/exercises/pascals-triangle/src/example.c
trackler-2.2.1.160 tracks/c/exercises/pascals-triangle/src/example.c