関数の再帰呼び出し
再帰呼び出し
階乗を求めるプログラム#include <stdio.h> int factorial(int); int main() { int i; for (i=0;i<11;i++) printf("%d! = %d\n",i,factorial(i)); return 0; } int factorial(int n) { if (n==0){ return 1; }else{ return n* factorial(n-1); } }
factorial(4)の戻り値は次のようになる。
4*factorial(3) 4*(3*factorial(2)) 4*(3*(2*factorial(1))) 4*(3*(2*(1*factorial(0)))) 4*(3*(2*(1*1)))