Skip to main content.

PHPでFizzBuss問題を再帰的に解く

 
PCのファイル整理をしていたらtest.phpっていうのがあって中身を見てみたらFizzBuzz問題の解法コード。
FizzBuzzを初めて知った時に自分ならどうするかって考えて書いたことあったなぁと思い出しました。

ちなみに「FizzBuzz」とは

1から100まで順番に数えてもらうとする。
その時、3で割り切れる数字は「Fizz」、5で割り切れる数字なら「Buzz」、両方で割り切れる場合は「FizzBuzz」、それ以外ならそのまま数字を言う。

という遊びのことで、このアルゴリズムをプログラムで作れというのが「FizzBuzz問題」です。
世界のナベアツの「3の倍数だけアホになる」と同じジャンルの遊びですね。

プログラマ志望の人に入社試験でこの問題を解かせてみると意外とできない人が多かったということで少し話題になったやつです。
たしかアメリカの話だったような気がします。

アルゴリズムとしては非常に簡単ですが、入社試験というプレッシャーのかかる環境で、しかも制限時間が5分くらい(でしたっけ?)でプログラムを書けと言われると私もパニックになるだろうなぁと思います。

せっかく出てきたので、そのtest.phpの中身をそのままペタッとコピペ。

<?php
function FizzBuzz($i = 0) {
  if ( ++$i > 100 ) return;
  if ( $i%3 == 0 ) echo("Fizz");
  if ( $i%5 == 0 ) echo("Buzz");
  if ( $i%3 != 0 && $i%5 != 0 ) echo($i);
  echo "<br />";
  return FizzBuzz($i);
}
FizzBuzz();
?>

このエントリーをはてなブックマークに追加
 

comments powered by Disqus