再帰呼び出しを使えばプログラムが単純になる場合がある。再帰呼び出しを使って階乗を計算するには次のようにすれば良い。
サンプルコードでは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;
}
コメント