개인공부/C언어
C언어 - 팩토리얼 예제 (Factorial)
무제1351
2020. 11. 11. 09:57
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언어