JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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) となり、反復処理によって数列を構築するため、再帰的なアプローチと比べて効率的で、スタックオーバーフローのリスクもありません。

  1. 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

  2. JavaScriptでspan要素のテキストを取得する方法

    JavaScriptで要素のテキストを取得するには、document.querySelector()で対象の要素を取得し、そのinnerHTMLプロパティを参照します。以下に、実際に動作するサンプルコードを示します。 サンプルコード <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initi