再帰アルゴリズム

 再帰(recursion)とは、プログラムの中に定義されている関数の中に更に定義されている関数が入っているアルゴリズムのことである。例として、以下に、階乗(factorial)を求めるアルゴリズムを示す。

/*階乗を求めるプログラム(再帰)*/

#include<stdio.h>

int factorial(int n){

    if(n == 0){

        return(1);

    }else{

        return(n*factorial(n-1));

    }

}

int main(void){

    int n;

    do{

        printf("数字を入力してください:");

        scanf("%d", &n);

    }while(n < 0);

    printf("%d! = %d\n", n, factorial(n));

    return(0);

}