fork download
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. #define LIMIT 100ul
  7.  
  8. typedef struct {
  9. int k;
  10. char *w;
  11. } pair_t;
  12.  
  13. int main(void)
  14. {
  15. const pair_t dictionary[] = {
  16. {.k = 2, .w = "Fuzz"},
  17. {.k = 3, .w = "Fizz"},
  18. {.k = 5, .w = "Buzz"},
  19. {.k = 7, .w = "Bizz"}
  20. };
  21.  
  22. for (size_t n=1; n <= LIMIT; ++n)
  23. {
  24. const char *start = "";
  25. char *output = (char *)start;
  26.  
  27. for (size_t e=0; e < sizeof dictionary / sizeof (pair_t); ++e)
  28. if (n % dictionary[e].k == 0)
  29. {
  30. output = realloc(output == start ? NULL : output, strlen(output) + strlen(dictionary[e].w) + 1);
  31. sprintf(output, "%s%s", output, dictionary[e].w);
  32. }
  33.  
  34. if (output == start)
  35. printf("%zu\n", n);
  36. else
  37. {
  38. printf("%s\n", output);
  39. free(output);
  40. output = NULL;
  41. }
  42. }
  43. }
  44.  
Success #stdin #stdout 0.02s 1852KB
stdin
Standard input is empty
stdout
1
Fuzz
Fizz
Fuzz
Buzz
FuzzFizz
Bizz
Fuzz
Fizz
FuzzBuzz
11
FuzzFizz
13
FuzzBizz
FizzBuzz
Fuzz
17
FuzzFizz
19
FuzzBuzz
FizzBizz
Fuzz
23
FuzzFizz
Buzz
Fuzz
Fizz
FuzzBizz
29
FuzzFizzBuzz
31
Fuzz
Fizz
Fuzz
BuzzBizz
FuzzFizz
37
Fuzz
Fizz
FuzzBuzz
41
FuzzFizzBizz
43
Fuzz
FizzBuzz
Fuzz
47
FuzzFizz
Bizz
FuzzBuzz
Fizz
Fuzz
53
FuzzFizz
Buzz
FuzzBizz
Fizz
Fuzz
59
FuzzFizzBuzz
61
Fuzz
FizzBizz
Fuzz
Buzz
FuzzFizz
67
Fuzz
Fizz
FuzzBuzzBizz
71
FuzzFizz
73
Fuzz
FizzBuzz
Fuzz
Bizz
FuzzFizz
79
FuzzBuzz
Fizz
Fuzz
83
FuzzFizzBizz
Buzz
Fuzz
Fizz
Fuzz
89
FuzzFizzBuzz
Bizz
Fuzz
Fizz
Fuzz
Buzz
FuzzFizz
97
FuzzBizz
Fizz
FuzzBuzz