JavaScriptでフィボナッチ数列のN番目の要素を取得する方法
JavaScriptで、1つの数値を引数として受け取る関数を作成する必要があります。この引数を n と呼びましょう。
この関数は、フィボナッチ数列の n 番目の要素を返す必要があります。
期待される出力例
fibonacci(10) → 55 を返す fibonacci(3) → 2 を返す fibonacci(6) → 8 を返す fibonacci(2) → 1 を返す
フィボナッチ数列とは、最初の2項が 1 であり、それ以降の各項が直前の2項の和となる数列です。つまり、1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ... のように続いていきます。
実装コード
以下は、配列を使って数列を順番に構築していくシンプルな実装例です。
const fibonacci = (num = 1) => {
const series = [1, 1];
for (let i = 2; i < num; i++) {
const a = series[i - 1];
const b = series[i - 2];
series.push(a + b);
};
return series[num - 1];
};
console.log(fibonacci(10));
console.log(fibonacci(6));
console.log(fibonacci(3));
console.log(fibonacci(2));コードの解説
- まず、初期値として [1, 1] の配列を用意します。これはフィボナッチ数列の最初の2項に相当します。
- 次に、for ループを使ってインデックス 2 から num 未満まで繰り返し処理を行い、直前の2つの要素の和を計算して配列に追加していきます。
- 最後に、series[num - 1] で n 番目の要素(配列のインデックスは0から始まるため)を取得して返します。
コンソールへの出力結果
55 8 2 1
この実装の計算量は O(n) となり、反復処理によって数列を構築するため、再帰的なアプローチと比べて効率的で、スタックオーバーフローのリスクもありません。
-
JavaScriptで学ぶフィボナッチ数列:素朴な再帰からメモ化(動的計画法)への最適化
フィボナッチ数とは フィボナッチ数とは、「最初の2つの数以降、各項がその直前の2つの数の和になる」という性質を持つ数列のことです。数列は 1, 1 から始まります。 1, 1, 2, 3, 5, 8, 13, 21, 34, … 素朴な再帰による実装 n番目のフィボナッチ数を求めるプログラムは、シンプルには次のように書けます。 function fibNaive(n) { if (n <= 1) return n; return fibNaive(n - 1) + fibNaive(n - 2); } 実際に動かして確認してみましょう。 console.log(fibN
-
JavaScriptでspan要素のテキストを取得する方法
JavaScriptで要素のテキストを取得するには、document.querySelector()で対象の要素を取得し、そのinnerHTMLプロパティを参照します。以下に、実際に動作するサンプルコードを示します。 サンプルコード <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initi