あの有名なFizzBuzz問題を解いてみる
プログラムの問題について調べると出てくるFizzBuzz問題
プログラマなら書けるのが当たり前らしく、色々な手法があることで結構奥が深い
FizzBuzz問題とは
1から順番に数字を言っていき、3で割り切れるものは"Fizz"、5で割り切れるものは"Buzz"、3と5どちらでも割り切れるものは"FizzBuzz"というもの
実際に書いてみた
言語は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
特に面白みもなく普通です
落ちはありません