カテゴリ:

この記事が結構話題みたいです。

どうしてプログラマに・・・プログラムが書けないのか?

読むのが面倒な人のために解説すると、こんな感じ。

プログラマを雇うにあたり、応募者に実際にプログラムを書いてもらうテストをしてみました。単純なテストです。ところがそのプログラムを書ける人は驚くほど少ない、というもの。ちなみにその問題とはこれ。

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

私はプログラマではないのですが、シェルスクリプトを教えていることもあり作ってみました。するとちゃんと出来ました…。当たり前か。でも2分ではとても無理です。

#!/bin/sh

count=1
tf=`expr 3 \* 5`
while [ $count -le 100 ]
do
    if [ `expr $count % $tf` -eq 0 ]
        then echo "FizzBuzz"
        else if [ `expr $count % 5` -eq 0 ]
            then echo "Buzz"
            else if [ `expr $count % 3` -eq 0 ]
                then echo "Fizz"
                else echo $count
            fi
        fi
    fi
    count=`expr $count + 1`
done

いやまぁ洗練されていないプログラムですが、とりあえず動きます。で、はてなブックマークを見ると大変参考になるプログラムが載っています。例えばこんなのとか。

seq 100|perl -ple '$_=($_%3?"":Fizz).($_%5?"":Buzz)||$_'

頭を使えば1行で出来てしまうのですよ!実行速度も全然違う。

ということでプログラムは楽しいね、というお話でした。

FizzBuzz