【C言語】再帰呼び出しを使って階乗を計算する

再帰呼び出しを使えばプログラムが単純になる場合がある。再帰呼び出しを使って階乗を計算するには次のようにすれば良い。

サンプルコードではfactorial関数内で再帰呼び出しを行っており、nが1になれば再帰呼び出しが終了するようになっている。

再帰呼び出しを使う場合は無限ループにならないよう注意が必要。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int factorial(int);
int main(void) {
    printf("%d", factorial(4));
}
 
int factorial(int n) {
    int a;
    if(n == 1) {
        return 1;
    }
    else {
        a = factorial(n - 1);
    }
    return a * n;
}

コメント

タイトルとURLをコピーしました