サイト内検索

フォントサイズ

Home お仕事 PHP Fizz Buzz 問題を出された
Fizz Buzz 問題を出された PDF 印刷 Eメール
2010年 3月 10日(水曜日) 10:04

上司がどこかのセミナーで聞いてきた問題

問題

1~100の数字を出力し、3の倍数の時は数字の代わりに"Fizz"、5の倍数の時は代わりに"Buzz"、3と5の倍数の時は代わりに"Fizz Buzz"と出力しなさい。プログラミング言語は問わない。

条件

  1. 制限時間2分以内。
  2. 1行で出来るだけ簡潔に書くこと。
  3. %(余剰)演算子は使わないこと。

PHPでやってみた。

一応2分以内で解けた。

回答

<?php
for ($i = 1; $i <= 100; $i++) {$str = ""; if (is_int($i / 3)) {$str .= "Fizz";} if (is_int($i / 5)) {if ($str != "") {$str    .= " ";} $str .= "Buzz";} if ($str == "") {$str .= $i;} $str    .= "<br />\n"; echo $str;}
?>

なんのこっちゃわからないので、改行を入れます。

<?php
for ($i = 1; $i <= 100; $i++) {
// バッファー
$str    = "";

// 3の倍数
if (is_int($i / 3)) {
$str    .= "Fizz";
}

// 5の倍数
if (is_int($i / 5)) {
if ($str != "") {$str    .= " ";}
$str    .= "Buzz";
}

// それ以外
if ($str == "") {$str    .= $i;}
$str    .= "<br />\n";

// 出力
echo $str;
}
?>

こういうことでいいんですか?まだ会社にいられますか?

上司 ああ、多分ちゃんと出てるからOK。

うちの会社は、この姿勢に問題があると思う!!!

なお、問題は、プログラマの腕試しに出題される問題らしい。なべあつの3の倍数がアホで5の倍数が気持ち良くなるあれです。

もっと簡潔にできると思うけど、暇だったら色々試してみましょう。

 

コメントの追加

お名前:
メールアドレス:
ホームページ:
タイトル:
コメント:
  上に表示されている文字を入力してください(小文字のみでスペースなし)。
確認ワード: