: 자기 자신(함수)을 부르는 함수
// 함수 구현 :: 전달받은 n값에 따라서, n ~ 1 까지 출력하는 함수 (n은 자연수)
int print(int n) {
printf("%d\n", n);
if (n == 1) { // if가 중단점 역할
printf("print() 함수를 종료합니다.\n");
return 0; // break 역할
}
return print(n - 1); // 자기자신을 호출
}
int main() {
int num;
scanf("%d", &num);
print(num);
}
// 문제 :: 입력값 num에 대한 팩토리얼 값 반환하는 함수를 구현
// 5! = 5*4*3*2*1
// n! = n*(n-1) * ... *1 ;
int factorial(int n) {
printf("%d 탐색 중\n", n);
if (n == 1) return 1;
return n * factorial(n - 1);
// 5 * fact(4) = 5*(4*fact(3)) = 5*4*(3*fact(2)) = 5*4*3*(2*fact(1))
}
int main() {
int num;
scanf("%d", &num);
int result =factorial(num);
printf("%d", result);
}