재귀함수 (Recursive)

 

재귀함수가 호출되면, 재귀함수의 복사본이 만들어져서 복사본이 호출되어 실행된다.

재귀함수의 탈출 조건이 중요하다.

 

다음은 팩토리얼(factorial) 값을 반환하는 함수를 재귀적으로 구현한 코드다. 

정수 n의 팩토리얼 n!을 수식적으로 나타내면 다음과 같다. 

n! = n * (n-1) * (n-2) * ..... 2 * 1;

 

정수 n 에 대하여 

n>=1인 경우 n * f(n-1)을 반환하고 

n==0인 경우 1을 반환한다 

 

#include <stdio.h>

int Recursive(int num)
{
	if (num == 0)
		return 1;
	else
		return Recursive(num - 1)*num;
}

int main()
{
	printf("%d!\n", Recursive(8));
	printf("%d!\n", Recursive(5));
	printf("%d!\n", Recursive(3));
	printf("%d!\n", Recursive(2));
	printf("%d!\n", Recursive(1));
	return 0;
}

 

 

728x90

+ Recent posts