PHPでFizzBuzz問題
新人プログラマがIF文、FOR文、演算子を覚えてきたら
まずはFizzBuzzテストで確認してみよう。
FizzBuzz問題とは?
1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに Fizz と、5 で割り切れるなら Buzz と言うゲーム。3 でも 5 でも割り切れる場合は、FizzBuzz の順に言う。これをプログラミングさせるテストをFizz-Buzz問題という。
by はてなキーワードより
http://d.hatena.ne.jp/keyword/FizzBuzz
FizzBuzz問題をまとめると…
・ 1〜100までを繰り返し出力
・ 但し、 3の倍数(3で割り切れる)には、Fizzを付加して出力
・ 但し、 5の倍数(5で割り切れる)には、Buzzを付加して出力
・ 但し、15の倍数(15で割り切れる)には、FizzBuzzを付加して出力
・
・
・
ということで問題を解いてみよう。
・
・
・
FizzBuzz答え
答えは一つじゃないけど、可読性のある記述がいい。とりあえず3つほど挙げておく解答例①
for ($i=1; $i<=100; $i++) { echo $i; if($i%3 == 0){ echo "Fizz"; } if($i%5 == 0){ echo "Buzz"; } echo "<br>"; }
解答例②
for($i=1; $i<=100; $i++){ $out = $i; if($i%3 == 0){ $out .= "Fizz"; } if($i%5 == 0){ $out .= "Buzz"; } echo $out."<br>"; }
解答例③
for($i=1; $i<=100; $i++){ $out = (($i%3 == 0) ? "Fizz" : "").(( $i%5 == 0 ) ? "Buzz" : "" ); echo $i.$out."<br>"; }
※ 最後の③は、三項演算子を用いた解答例です。
※ echo "<br>"は、出力時に見やすくする為に入れてるだけです。