スマートフォン用の表示で見る

FizzBuzz

ゲーム

FizzBuzz

ふぃずばず

1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに Fizz と、5 で割り切れるなら Buzz と言うゲーム。3 でも 5 でも割り切れる場合は、FizzBuzz の順に言う。

これをプログラミングさせるテストをFizz-Buzz問題という。

ルールのより厳密な定義

3と5の公倍数の時は、FizzBuzzとだけ回答するべき。最初の定義では、たとえば15がやってきた時「3の倍数なのでFizzと言う、5の倍数なのでBuzzと言う、3と5の公倍数なのでFizzBuzzと言う、結果、15の時はFizzBuzzFizzBuzzになる」と解釈することも可能である。(極端に厳密な場合)

こう言った異なった解釈が可能な仕様書は一般に悪いと言われる。かと言って長々と細かい定義をしてもそれはそれで誤読の可能性を高くしてしまう。

よって、よい定義とは短くて誤解しようがない定義と言うことになる。

流れ図による定義その1

  1. カウンターを設定、0とする。
  2. カウンターに1を加える。
  3. カウンターが100(の他、設定した値)を超えたなら、終了する。
  4. カウンターが3と5の公倍数であるならば、「FizzBuzz」を出力し、2に戻る。
  5. カウンターが3の倍数であるならば、「Fizz」を出力し、2に戻る。
  6. カウンターが5の倍数であるならば、「Buzz」を出力し、2に戻る。
  7. カウンターの数字を出力し、2に戻る。

流れ図による定義その2

  1. カウンターを設定、1とする。
  2. 出力文字列を設定、空欄とする。
  3. カウンターが3の倍数であるならば、出力文字列の末尾に「Fizz」を加える。
  4. カウンターが5の倍数であるならば、出力文字列の末尾に「Buzz」を加える。
  5. 出力文字列が空欄であるならば、カウンターを文字列変換し出力文字列に代入する。
  6. 出力文字列を出力する。
  7. カウンターに1を加える。
  8. カウンターが100(の他、設定した値)以下なら、2に戻る。
  9. 終了する。