あの有名なFizzBuzz問題を解いてみる

プログラムの問題について調べると出てくるFizzBuzz問題
プログラマなら書けるのが当たり前らしく、色々な手法があることで結構奥が深い

FizzBuzz問題とは

1から順番に数字を言っていき、3で割り切れるものは"Fizz"、5で割り切れるものは"Buzz"、3と5どちらでも割り切れるものは"FizzBuzz"というもの

詳しくは 
https://ja.wikipedia.org/wiki/Fizz_Buzz
を参照

実際に書いてみた

言語はC

include <stdio.h>
#define Fizz i % 3 == 0
#define Buzz i % 5 == 0
int main()
{
   int i;
   for (i = 1; i <= 100; i++) 
   {
      if (Fizz && Buzz)
         printf("%3d FizzBuzz\n",i);
      else if (Fizz)
         printf("%3d Fizz\n",i);
      else if (Buzz)
         printf("%3d Buzz\n",i);
      else
         printf("%3d \n", i);
   }
   return 0;
}

大体こんな感じ
結構有名な問題のためかwikiなどの解答例とほとんど同じになってしまった
ループの部分はとりあえず1~100にした
if分に{ }が必要かなどは本題ではないのでスルー
一応defineを使って見やすくしているけど、この使い方は正しいのか正直微妙なところ

実行結果

  1
  2
  3 Fizz
  4
  5 Buzz
  6 Fizz
  7
  8
  9 Fizz
 10 Buzz
 11
 12 Fizz
 13
 14
 15 FizzBuzz
 16
 17
 18 Fizz
 19
 20 Buzz
 21 Fizz
 22
 23
 24 Fizz
 25 Buzz
 26
 27 Fizz
 28
 29
 30 FizzBuzz
 31
 32
 33 Fizz
 34
 35 Buzz
 36 Fizz
 37
 38
 39 Fizz
 40 Buzz
 41
 42 Fizz
 43
 44
 45 FizzBuzz
 46
 47
 48 Fizz
 49
 50 Buzz
 51 Fizz
 52
 53
 54 Fizz
 55 Buzz
 56
 57 Fizz
 58
 59
 60 FizzBuzz
 61
 62
 63 Fizz
 64
 65 Buzz
 66 Fizz
 67
 68
 69 Fizz
 70 Buzz
 71
 72 Fizz
 73
 74
 75 FizzBuzz
 76
 77
 78 Fizz
 79
 80 Buzz
 81 Fizz
 82
 83
 84 Fizz
 85 Buzz
 86
 87 Fizz
 88
 89
 90 FizzBuzz
 91
 92
 93 Fizz
 94
 95 Buzz
 96 Fizz
 97
 98
 99 Fizz
100 Buzz

特に面白みもなく普通です
落ちはありません