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언어
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 피보나치 예제와 재귀 호출의 장단점 (0) | 2020.11.11 |
---|---|
C언어 - 이진수 변환 예제 (0) | 2020.11.11 |
C언어 - 재귀 호출 (0) | 2020.11.10 |
C언어 - 지역변수와 스택 (0) | 2020.11.10 |
C언어 - 변수의 영역(scope)과 지역변수(Local) (0) | 2020.11.10 |