반응형
팩토리얼을 c언어로 구현해 보도록 하겠습니다.
팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱입니다.
예를 들어 4!은 1 * 2 * 3 * 4 즉, 24가 되겠죠.
그렇다면 n! = 1 * 2 * ..... * (n - 1) *n이 될것입니다.
아래의 함수는 n을 nb라는 인자를 받아서 계산할 것입니다.
재귀함수를 이용하지 않는 버전과 이용하는 버전 이렇게 2가지를 한번 살펴보도록 하겠습니다.
우선 사용하지 않는 버전입니다.
int OdOp_iterative_factorial(int nb)
{
int answer;
answer = 1;
if (nb < 0)
return (0);
while (nb > 1)
{
answer *= nb;
nb--;
}
return (answer);
}
재귀함수를 사용하는 버전입니다.
void OdOp_factorial(int *answer, int nb)
{
*answer *= nb;
if (nb >= 2)
OdOp_factorial(answer, --nb);
}
int OdOp_recursive_factorial(int nb)
{
int answer;
answer = 1;
if (nb < 0)
return (0);
else if (nb < 2)
return (1);
else
{
OdOp_factorial(&answer, nb);
}
return (answer);
}
하시는 프로젝트 잘 마무리 하시길 바랍니다.
반응형
'Algorithm > Algorithm' 카테고리의 다른 글
C언어, 소수 판별하기 (0) | 2023.12.13 |
---|---|
C언어, 제곱근 구하기 (0) | 2023.12.12 |
C언어, 거듭 제곱 (0) | 2023.12.10 |
C언어, 피보나치 수열 (0) | 2023.12.09 |
putnbr_base, 숫자를 진법으로 변환하기 (1) | 2023.12.07 |