반응형
앞서 재귀함수에 대한 예시를 설명했다.
https://ansan-survivor.tistory.com/1234
위에서 설명했던 재귀함수는 그러면 과연 어디에 쓸 것인가?
대표적인 사례로 펙토리얼 계산에 대표적으로 사용된다.
(펙토리얼 계산해주는 사이트)
https://www.inchcalculator.com/factorial-calculator/
반응형
펙토리얼 계산을 일반항으로 모델링을 하면 아래와 같다.
펙토리얼은 계속해서 f(n) 함수 내에서 f(n-1)을 연산 하므로 재귀함수의 성질을 갖고있다.
이를 C언어 재귀함수로 표현이 가능하다는 것이다.
#include <stdio.h>
// Recursive라는 함수를 만듦
int Factorial(int n)
{
// n이 0이면 1을 리턴
if (n == 0)
return 1;
else
// n이 0이 아닐 경우 n x f(n-1) 계산을 계속 진행
return n * Factorial(n-1) ;
}
int main(void)
{
// 각 펙토리얼 계산 결과 확인
printf("factorial 3! = %d\n", Factorial(3));
printf("factorial 5! = %d\n", Factorial(5));
printf("factorial 10! = %d\n", Factorial(10));
return 0;
}
(결과)
결과가 맞는지는 아래 펙토리얼 계산 사이트를 이용해본다.
https://www.inchcalculator.com/factorial-calculator/
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] C언어 표준 입출력 stdin, stdout (입력과 출력), 문자 입출력 ( getchar, putchar, fgetc, fputc) (0) | 2022.02.21 |
---|---|
[C언어] main함수로 인자 전달 (argc, argv [ ]) (0) | 2022.02.21 |
[C언어] 재귀함수란? 재귀함수 예시, 쉬운 설명 (0) | 2022.02.01 |
[C언어] 반복문 탈출 break 문, 반복문 계속 continue 문 (0) | 2022.01.29 |
[C언어] C언어 삼 항 연산자 (한줄 조건 연산자), 한줄짜리 간단한 연산자 (0) | 2022.01.29 |