×
データ構造とアルゴリズム
// 計算結果を保存する配列を用意し、再利用する
let memo = {};
function fibonacci(n) {
  if (n <= 2) return 1;
  if (memo[n]) return memo[n]; // すでに計算済みならその結果を返す
  memo[n] = fibonacci(n - 1) + fibonacci(n - 2);
  return memo[n];
}

もう少し詳しく