diff --git a/412-fizz-buzz/412-fizz-buzz.c b/412-fizz-buzz/412-fizz-buzz.c new file mode 100644 index 0000000..91f2671 --- /dev/null +++ b/412-fizz-buzz/412-fizz-buzz.c @@ -0,0 +1,23 @@ +/** + * Note: The returned array must be malloced, assume caller calls free(). + */ +char ** fizzBuzz(int n, int* returnSize){ + char **array = malloc(n * sizeof(char *)); + *returnSize = n; + + for (int i = 1; i <= n; ++i) { + if (i % 15 == 0) { + array[i - 1] = "FizzBuzz"; + } else if (i % 3 == 0) { + array[i - 1] = "Fizz"; + } else if (i % 5 == 0) { + array[i - 1] = "Buzz"; + } else { + array[i - 1] = malloc((int) (ceil(log10(i + 1)) + 1) * sizeof(char)); + sprintf(array[i - 1], "%d", i); + } + } + + return array; + +} \ No newline at end of file