재귀 함수를 구현할 수 있습니까? Factorial을 구현해 보세요.

  • 재귀함수

재귀함수란 “자기 자신을 재참조하는 함수”이기 때문에 본인이 본인을 호출하는 구조로 되어있다.

재귀함수는 수식 처리를 보기 좋게 간결하게 표현하는데 유용하며 데이터 구조가 얼마나 많은 단계로 구성될지 모호한 상황에서 쓰기에 좋다. 이러한 재귀 함수를 이용해서 자료구조나 알고리즘 분야에서 어려운 문제들을 해결하는데 많이 쓰이고 있다.

하지만 자기 자신을 계속 호출하기에 시간과 메모리 공간의 효율이 저하되고 중간에 문제점을 따라가기에 어려움이 있으며, 무한 반복 혹은 오버플로우 발생을 야기한다. 그렇기에 재귀함수는 신중하게 사용해야 한다.

  • Factorial 구현

#include <stdio.h>

int factorial(int n);

int main(void)

int i,result;

for(i=0;i<=10;i++)

result = factorial(i);

printf("%d! = %d;

return 0;

int factorial(int n)

if(n <= 1)

return 1;

else

return n * factorial(n-1);

▲ Factorial 소스

▲ Factorial이 구현된 모습

프로그래밍

관계란 무엇입니까?

프로그래밍

객체지향이란 무엇입니까?

커뮤니티 Q&A

이론과 관련된 게시글이에요.

이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!

게시글 작성하기