IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

JavaScript でフィボナッチ数列を高速に求める

低速版

function fib(i) {
  if(i == 0 || i == 1) return i;
  return fib(i-1) + fib(i-2);
}

高速版

function fib(i) {
  return (function(i) {
    if(i == 0) return [0, 1];
    return (function(a){ return [a[1], a[1] + a[0]] })(arguments.callee(i-1));
  })(i)[0]
}