気付かないうちに進行する恐ろしい病気
問.
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
関数脳とは気づかないうちに進行するものなのである。
関数型言語から離れているからといって安心はできない。
お酒やたばこをやめたから〜と一緒ですな(どこが)。