FizzBuzz問題

投稿日:2019年04月12日 23時51分24秒

プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は 「Fizz」(Bizz Buzz の場合は 「Bizz」)、5で割り切れる場合は 「Buzz」、両者で割り切れる場合は 「Fizz Buzz」 (Bizz Buzz の場合は 「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者やためらった者は脱落となる。

ということで、1,2,Fizz,4,Buzzとか出力するプログラムですね。2,3分でプログラマなら答えられないといけないそうですが、なんつうか回答がエレガントでないのが多いですね。

pochi的には、

 <?
    for($i=1,$n3=0,$n5=0 ; $i<=100 ; $i++ ){
        if( ++$n3==3 ) {
             print "Fizz<br/>\n";
             $n3 = 0;
        }
        if( ++$n5==5 ){
             print "Buzz<br/>\n";
             $n5 = 0;
        }
        if( $n3*$n5 ){
            print "{$i}<br>\n";
        }
    }
?>

がエレガントかなと思います。

[メールは有料にしよう! >>]