【C言語】再帰関数で階乗の計算を行う方法を解説

再帰関数とは、関数内で自分自身を呼び出すことができる特殊な関数です。

この記事では、再帰関数を使って階乗の計算を行う方法について解説します。

目次から探す

再帰関数とは

再帰関数は、関数内で自分自身を呼び出すことができる関数のことです。

階乗の計算においても再帰関数を使うことができます。

階乗の定義

階乗とは、ある自然数nに対して、1からnまでのすべての自然数を掛け合わせた値のことです。

階乗はn!と表されます。

再帰関数を使った階乗の計算方法

再帰関数を使って階乗を計算する場合、以下の手順で実装します。

  1. 階乗を計算する関数を定義します。

関数名は任意ですが、ここでは factorial とします。

  1. 関数内で、階乗を計算するための条件分岐を行います。

もし引数が0または1の場合、その値を返します。

これが再帰の終了条件です。

上記以外の場合、関数内で自分自身を呼び出し、引数を1減らした値を渡します。

  1. 関数内で自分自身を呼び出すことで、再帰的に階乗を計算します。
  2. 最終的な結果を返します。

以下に、再帰関数を使った階乗の計算のサンプルコードを示します。

#include <stdio.h>
int factorial(int n) {
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}
int main() {
    int num = 5;
    int result = factorial(num);
    printf("%dの階乗は%dです。\n", num, result);
    return 0;
}
5の階乗は120です。

上記のコードでは、factorialという再帰関数を定義し、main関数内でその関数を呼び出しています。

numには計算したい階乗の値を指定し、resultには計算結果が格納されます。

最後に、結果を表示しています。

目次から探す