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

JavaScriptで数値の階乗を計算する関数の実装方法

本記事では、数値 n を引数として受け取り、その階乗(factorial)を計算して返すシンプルな JavaScript 関数の作成方法を解説します。

階乗とは

階乗とは、1 からその数までのすべての整数を掛け合わせた値のことです。例えば 5 の階乗は「5 × 4 × 3 × 2 × 1 = 120」となります。数学的には「n!」と表記されます。なお、0 の階乗は定義により 1 とされます。

アルゴリズムの考え方

ここでは、カウンター用の変数と結果を格納する変数の 2 つを用意します。

結果を格納する変数にカウンターの値を順次掛けていき、同時にカウンターを 1 ずつ減らしていきます。この処理をカウンターが 1 になるまで繰り返します。

最後に、計算結果を格納した変数を return 文で返せば完成です。

コード例

実際のコードは以下のようになります。

const num = 14;
const factorial = num => {
    let res = 1;
    for(let i = num; i > 1; i--){
        res *= i;
    };
    return res;
};
console.log(factorial(num));

このコードでは、アロー関数を使って factorial 関数を定義しています。for ループで引数 num から 2 まで逆順に処理し、それぞれの値を res に掛け合わせていくことで階乗を求めています。

出力結果

上記のコードをコンソールで実行すると、以下の出力が得られます。

87178291200

14 の階乗は 87,178,291,200 となるため、正しく計算できていることが確認できます。

まとめ

このように、単純な for ループと掛け算の繰り返し処理だけで、JavaScript で階乗を簡単に計算することができます。再帰関数を使う方法もありますが、ループによる実装は直感的でパフォーマンス面でも優れているため、初心者にもおすすめのアプローチです。

  1. JavaScriptのNumber()関数とは?使い方とサンプルコードを解説

    JavaScriptのNumber()関数は、引数として渡された値やオブジェクトを、それに対応する数値へ変換するための関数です。真偽値や文字列型の数字、さらにはDateオブジェクトなども数値に変換できるため、データ型の変換処理において非常に便利な組み込み関数の一つです。例えば、Number(true)は「1」、Number(false)は「0」を返します。また、数字のみで構成された文字列「149」を渡せば数値の149に変換され、new Date()で生成した日付オブジェクトを渡すと、1970年1月1日からの経過ミリ秒数が返されます。以下に、Number()関数の動作を確認できるサンプルコードを

  2. JavaScriptのNumber.toLocaleString()関数とは?使い方と実行例を解説

    NumberオブジェクトのtoLocaleString()メソッドは、数値を受け取り、指定されたロケール(地域・言語設定)に応じた形式の文字列表現を返す関数です。国や地域ごとに異なる数字の表記(アラビア数字、桁区切りなど)に変換したい場合に便利です。 構文 toLocaleString()メソッドの基本的な構文は以下のとおりです。 num.toLocaleString(locales); 引数にはBCP 47言語タグ(例:ja-JP、en-US、ar-EGなど)を文字列で指定します。引数を省略した場合は、実行環境のデフォルトロケールが使用されます。 使用例 次のサンプルコードでは、数値「332