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