
1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに Fizz と、5 で割り切れるなら Buzz と言うゲーム。3 でも 5 でも割り切れる場合は、FizzBuzz の順に言う。
- http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
- http://en.wikipedia.org/wiki/Bizzbuzz
これをプログラミングさせるテストをFizz-Buzz問題という。
ルールのより厳密な定義
3と5の公倍数の時は、FizzBuzzとだけ回答するべき。最初の定義では、たとえば15がやってきた時「3の倍数なのでFizzと言う、5の倍数なのでBuzzと言う、3と5の公倍数なのでFizzBuzzと言う、結果、15の時はFizzBuzzFizzBuzzになる」と解釈することも可能である。(極端に厳密な場合)
こう言った異なった解釈が可能な仕様書は一般に悪いと言われる。かと言って長々と細かい定義をしてもそれはそれで誤読の可能性を高くしてしまう。
よって、よい定義とは短くて誤解しようがない定義と言うことになる。
流れ図による定義その1
- カウンターを設定、0とする。
- カウンターに1を加える。
- カウンターが100(の他、設定した値)を超えたなら、終了する。
- カウンターが3と5の公倍数であるならば、「FizzBuzz」を出力し、2に戻る。
- カウンターが3の倍数であるならば、「Fizz」を出力し、2に戻る。
- カウンターが5の倍数であるならば、「Buzz」を出力し、2に戻る。
- カウンターの数字を出力し、2に戻る。
流れ図による定義その2
目次
- FizzBuzzとは
- ルールのより厳密な定義
- 流れ図による定義その1
- 流れ図による定義その2