2012年3月9日金曜日

github初コミットと楽天の試験問題について

久しぶりにブログ書いてます。

やりたい事がいっぱいあって時間が足りないです。

最近gitにはまっていて、仕事でも無理やり使っているのですが、
ついにgithubにコミットしました。アカウントだけは前から作ってたんですけどね。

といっても大それたプロジェクトを立ち上げたわけでもなく、
書いてみたってレベルのものです。

丁度会社の同僚に面白い問題を教えてもらったので、そのソースを上げました。

その問題はこちら

楽天の入社問題らしいのですが、いやー



解けなかった!!



普通に答えをググってしましました。
まぁ普通に見つかりました。

こちらのブログに丁寧な説明と一緒に載っていました。

馬鹿正直にforeachで解こうとしてましたが、一般項を考えると簡単に解けるんですね。
アルゴリズムって大事。

で、githubに上げたソースなのですが、全く同じ物を上げても意味がないかと思ったので、
php版を上げました。

それがこちら



ちゃんと見れるのかな。。?

class F{
    private static $cache = array();
    public function __construct(){
        self::$cache;
    }

    public function f($num){
        if(array_key_exists($num, self::$cache)) return self::$cache[$num];
        if($num < 1) return 0;
        $res = $this->f($num - 3) + $this->f($num - 2) + $this->f($num - 1);
        if($num < 4) $res += 1;
        self::$cache[$num] = $res;
        return $res;
    }
}

$f = new F();
print_r($f->f(100));

最近phpでstaticな配列が作れると知りました。


でも、phpだと



浮動小数点表示になっちゃう!!



pythonも初めて触りましたが、ちゃんと整数で表示してくれるんですね。
素晴らしい。


githubに上げたソースをブログにうまく表示できないかなー

0 件のコメント:

コメントを投稿