再帰関数呼び出し

階乗を求めるプログラム

#include <stdio.h>

int factorial(int n){ 
        if(n>0){
                return (n * factorial(n-1));
        }else{
                return 1;
        }   
}

int main(void){
        int num;
        printf("整数を入力してください。");
        scanf("%d",&num);
        printf("その数の階乗は%dです。\n",factorial(num));

        return 0;
}

何らかの計算・操作を行いたいとき、それを実現するのがたまたま自分自身と同じ関数であれば、その関数を呼び出すことができる。