【ループメニュー1】> FINAL問題【FizzBuzz】FizzBuss (paizaランク D 相当) [難易度: 949 ±30]
※リンク先へ移動するためには[paiza]へのログインが必要です。
1 ~ 100 の整数に対して、3 と 5 の両方で割り切れるなら FizzBuzz
を、 3 でのみ割り切れるなら Fizz
、5 でのみ割り切れるなら Buzz
を改行区切りで出力してください。また、どちらでも割り切れない場合は、その数字を改行区切りで出力してください。
入力値(例)
なし
出力値(例)
1
2
Fizz
4
Buzz
...
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php for($i = 1; $i <= 100; $i++){ if($i % 3 == 0 && $i % 5 == 0) { echo "FizzBuzz". "\n"; } elseif($i % 3 == 0) { echo "Fizz". "\n"; } elseif($i % 5 == 0) { echo "Buzz". "\n"; } else { echo $i. "\n"; } } ?> |
解説
if()で最初に3と5で割れると条件を入れないと、もし先に3が割り切れるとき、5が割り切れるときと条件にしてしまうと、15は先に3が割れるのがtrueになってしまい"Fizz"が出力されてしまいます。必ず上位に3でも5でも割り切れる($i % 3 == 0 && $i % 5 == 0)を条件にしましょう。
感想
プログラムをはじめて初期のころにFizzBuzzをやったのですが、ラスボスか!っていうくらい難しくて泣いていました。でもループ処理やif()文ができるようになってきたら、ふんふんふーんと書けるようになって成長を感じられてめちゃくちゃ嬉しいです。(*'ω'*)