2010年3月7日日曜日

[プログラミング] 面接官になったら尋ねるべき質問実例集

RSSリーダーで見つけた記事です。
回答するのが流行っている?ようなので自分も Perl で解いてみました。

プログラマーの力量を見極める--面接官になったら尋ねるべき質問実例集
http://japan.zdnet.com/sp/feature/07tenthings/story/0,3800082984,20409456-2,00.htm

# 数値Xのフィボナッチ数を計算する。
sub fibonacci {
    my $x = shift;
    return $x if $v == 0 or $x == 1;
    return fibonacci($x-2) + fibonacci($x-1);
}
負の値についてもアルゴリズムがあるようです。

# 指定された数値Xが素数であるかどうかを判定する。
sub is_prime {
    my $x = shift;
    for (2 .. $x-1) {
       return 0 if $x % $_ == 0;
    }
    return 1;
}
引数の平方根以上の数値では判定しないようにしたり、偶数は2の倍数なので無視したり、素数で無いものは無視したりすることでもっと効率は良く出来ますが、面倒なのでこの辺でw

# ループを使わずに配列の順序を逆にする。
sub array_reverse {
    return @_ ? ($_[$#_], array_reverse(@_[0..$#_-1])) : ();
}
pop() を使えばもっとシンプルになりますが、組み込み関数を使わないでやってみました。

# FizzBuzz
sub fizzbuzz {
    my $x = shift;
    return 'FizzBuzz' if $x % (3 * 5) == 0;
    return 'Fizz'     if $x % 3 == 0;
    return 'Buzz'     if $x % 5 == 0;
    return $x;
}
そのままですね。。

0 件のコメント: