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

JavaScriptの再帰関数で階乗を計算する方法

本記事では、JavaScriptの再帰(リカーシブ)アプローチを利用して、ある数 n の階乗を計算する関数の実装方法を解説します。

階乗とは?

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

再帰による階乗の実装例

以下のコードでは、デフォルト引数 res を使って結果を累積しながら、自分自身を呼び出す再帰関数を実装しています。

const num = 9;
const recursiveFactorial = (num, res = 1) => {
    if(num){
        return recursiveFactorial(num-1, res * num);
    };
    return res;
};
console.log(recursiveFactorial(num));
console.log(recursiveFactorial(6));
console.log(recursiveFactorial(10));
console.log(recursiveFactorial(5));
console.log(recursiveFactorial(13));

コードの仕組み

この関数は、引数 num が真(0より大きい)である間、num を1ずつ減らしながら res に掛け合わせていきます。num が0になった時点で再帰が終了し、累積された結果 res が返されます。これにより、「9!」のような大きな階乗もシンプルに求められます。

出力結果

コンソールには以下のように出力されます。

362880
720
3628800
120
6227020800

このように、各入力値に対して正しい階乗の値が出力されていることが確認できます。

  1. JavaScriptで配列の平均値を計算する方法

    JavaScriptで配列の平均値を求めるには、配列内のすべての要素を合計し、その合計を配列の長さ(要素数)で割ります。要素の合計を求めるには、forEach()メソッドやreduce()メソッドを使うと簡単に実装できます。コード例<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initia

  2. JavaScriptでhref属性の値を取得する方法|jQueryのattr()メソッド活用ガイド

    Web開発では、アンカータグ(<a>)に設定されたリンク先URL、つまりhref属性の値を取得したい場面がよくあります。この記事では、jQueryのattr()メソッドを使って、簡単にhrefの値を取得する方法を解説します。対象となるHTMLの例たとえば、以下のようなアンカータグがあったとします。<a class=demo title=get the url href=./mainPage.jsp/1245>href value at console</a>ここで必要なのは、テキスト部分ではなく、URLそのもの、すなわちhref属性の値「./mainPage