팩토리얼(Factorial)은 주어진 정수 ( n )에 대해 ( n! )을 계산하는 함수로, 기본적으로 ( n )이 0이나 양의 정수일 때 정의된다. 여기서는 재귀(Recursive)와 반복문(Iterative) 두 가지 방법을 통해 팩토리얼을 구현하는 방법을 소개한다.
재귀를 이용한 팩토리얼 계산은 함수가 자기 자신을 호출하여 문제를 점진적으로 해결하는 방식이다. 다음은 재귀적으로 팩토리얼을 구현한 함수이다.
int ft_recursive_factorial(int nb)
{
if (nb < 0)
return (0);
else if (nb == 1 || nb == 0)
return (1);
else
return (nb * ft_recursive_factorial(nb - 1));
}
설명:
출력 예시:
반복문을 이용한 팩토리얼 계산은 주어진 숫자까지의 곱을 반복적으로 계산하는 방식이다. 다음은 반복문을 사용하여 팩토리얼을 구현한 함수이다.
int ft_iterative_factorial(int nb)
{
long long num;
int factorial;
num = nb;
factorial = 1;
if (num < 0)
return (0);
while (nb != 0)
{
factorial = factorial * nb;
nb--;
}
return (factorial);
}
설명:
출력 예시:
재귀와 반복문 모두 팩토리얼을 계산하는 유효한 방법이다. 재귀적 접근은 코드가 직관적이지만, 깊은 재귀 호출은 스택 메모리를 과도하게 사용할 수 있다. 반복문은 메모리 사용이 효율적이며, 반복 횟수에 따라 성능 차이가 있을 수 있다. 각 방법의 장단점을 이해하고 상황에 맞게 적절한 방법을 선택하는 것이 중요하다.