[C언어] 재귀적 함수 호출, n!(Factorial 계산)

재귀적 함수 호출


함수 내에서 자기 자신을 다시 호출하는 형태이다.


재귀적 함수 호출은 부담스럽지만 어렵고 복잡한 문제를 쉽게 해결 할 수 있다.

자료구조와 알고리즘에서는 빠질 수 없는 개념.


n! 팩토리얼 계산.


#include <stdio.h>

int f(int n);


int main(void)
{

int val, result;


printf("정수 입력 : ");

scanf("%d", &val);


if(val < 0)
{

printf("0 이상을 입력해야 합니다. \n");

return 1;

}


result = f(val);    //팩토리얼 계산.

printf("%d!의 계산결과 : %d \n", val, result);

return 0;

}


int f(int n)
{

if(n == 0) //n이 0이면 1을 반환
    return 1;

else      // 아니면 n* (n-1)을 반환.

return n*f(n-1);

}