【C言語】再帰関数を使用してnの階乗を求める

  • このエントリーをはてなブックマークに追加

再帰関数を使用してnの階乗を求める。関数factorialに0と1を渡すとnを返し、1より大きい値だとn * factorial(n – 1)を返すと、簡単に階乗を求めるプログラムを作成できる。



次のコードをfactorial.cとする。

環境
windows10(64bit)
Borland C++ 5.5.1 for Win32


#include <stdio.h>

// 階乗を計算する関数
int factorial(int n) {
    return n == 0 ? 1:n * factorial(n - 1);
}

int main() {
    int num;
	
    printf("nの階乗を求める。\n");
    printf("nを入力せよ\n");
	
    scanf("%d", &num);
    
    if (num < 0) {
        printf("負の数の階乗は計算できません。\n");
    } else {
        int result = factorial(num);
        printf("%dの階乗は%dです。\n", num, result);
    }
    
    return 0;
}

コンパイルして実行する。


c:\coco_c>bcc32 factorial.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
factorial.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

c:\coco_c>factorial.exe
nの階乗を求める。
nを入力せよ
0
0の階乗は1です。

c:\coco_c>factorial.exe
nの階乗を求める。
nを入力せよ
1
1の階乗は1です。

c:\coco_c>factorial.exe
nの階乗を求める。
nを入力せよ
5
5の階乗は120です。

c:\coco_c>
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*