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

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

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

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

#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をコピーしました