2022年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
無料ブログはココログ

« 実家のPCバージョンアップ | トップページ | Oracle ELSIF »

FizzBuzz問題

FizzBuzz問題というプログラマ適性問題(?)が話題になっているらしい。

以下、(http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm)から引用

「1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。
怖い事実を聞きたい?  コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。
自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。」

引用終わり

C#で書いてみた。パッと思いつくとこんな感じかな。
すぐに思いつくが2分とかからずというのは難しいなぁ。

static void Main(string[] args)
{
    for(int i = 1; i <= 100; i++)
    {
        if (i % 3 == 0 && i % 5 ==0)
        {
            Console.WriteLine("FizzBuzz");
        }
        else if (i % 3 == 0)
        {
            Console.WriteLine("Fizz");
        }
        else if (i % 5 == 0)
        {
            Console.WriteLine("Buzz");
        }
        else
        {
            Console.WriteLine(i.ToString());
        }
    }
}

見直してみると「if (i % 3 == 0 && i % 5 ==0)」を「if (i % 15 == 0)」とした方がスマートだと思う。
しかし「3と5両方の倍数の場合には~」という点をそのままコードで表現している点は、「仕様書を素直にコードに落としていること」という職業プログラマの習性か・・・

« 実家のPCバージョンアップ | トップページ | Oracle ELSIF »

駄文」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: FizzBuzz問題:

» FizzBuzz問題 [LibertyBoy]
使えないプログラマーさんのところで、面白い記事を見つけました。 使えないプログラマー: FizzBuzz問題 元ネタはこ... [続きを読む]

» [コンピューター]使えないプログラマー: FizzBuzz問題 [unibonの日記]
http://tukaenai-pg.cocolog-nifty.com/blog/2007/07/fizzbuzz_51bf.html FizzBuzz問題FizzBuzz問題というプログラマ適性問題(?)が話題になっているらしい。 以下、(http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm)から引用 「1から100までの... [続きを読む]

« 実家のPCバージョンアップ | トップページ | Oracle ELSIF »