C언어 - 팩토리얼 예제 (Factorial)

2020. 11. 11. 09:57개인공부/C언어

 

loop vs recursion

 

factorial : 3! = 3 * 2 * 1, 0! = 1

5! = 5 * 4! = 5 * 4 * 3! = 5 * 4 * 3 * 2! = 5 * 4 * 3 * 2 * 1!

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


long recursive_factorial(num);
long loop_factorial(int n);

int main() {

	int num = 5;

	printf("%d\n", loop_factorial(num));
	printf("%d\n", recursive_factorial(num));


	return 0;
}

long loop_factorial(int n)
{
	long ans;

	for (ans = 1; n > 1; n--)
		ans *= n;

	return ans;
}

long recursive_factorial(int n)
{
	if (n > 0)
	{
		return n * recursive_factorial(n - 1); // return 앞에서 재귀호출 하는 것 tail (end) recursion 
	}
	else
		return 1;
}

 

반복문, 재귀호출로 팩토리얼을 구현할수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 홍정모의 따라배우는 C언어