気付かないうちに進行する恐ろしい病気

問.
2のn乗をforループで求めよ

模範解答解1.
O(n)

int pi = 1;
for(int i=0; i<n; i++)
    pi *= 2;

私の解2.
O(log n)

int pow2(int n){
    if(n % 2 == 0){
        int t = pow2(n / 2);
        return t * t;
    }
    else{
        return pow2(n - 1) * 2;
    }
}

驚愕の解3.
O(1)

1 << n


関数脳とは気づかないうちに進行するものなのである。
関数型言語から離れているからといって安心はできない。
お酒やたばこをやめたから〜と一緒ですな(どこが)。