[C 프로그래밍] 29장. 재귀함수
--------------------------------------------
재귀 함수란
다시 돌아오는 함수 라는 뜻이며
자기 자신이
자기 자신을 다시 호출하는 함수라고 할 수 있습니다.
--------------------------------------------
예제를 살펴보겠습니다.
--------------------------------------------
우선
함수 프로토 타입
함수 호출
함수의 정의를
구분해줍니다.
--------------------------------------------
main함수에서
recursive 함수를 호출하면
내부에서 문장을 출력하고
recursive함수를 또 호출합니다.
--------------------------------------------
그러면
이런식으로
자기 자신과 똑같은 함수가 메모리에 복사되어
함수가 계속 실행되게 됩니다.
--------------------------------------------
실행결과는 다음과 같습니다.
--------------------------------------------
다음 예제는
재귀함수를 이용하여
팩토리얼 값을 구하는 함수를 만드는 예제입니다.
--------------------------------------------
재귀함수 형태로 구현된
팩토리얼 함수는 다음과 같습니다.
종료조건은 n이 1이되면
return 1하여 함수가 1로 바뀝니다.
나머지는
입력값이 하나씩 줄어들면서 재귀가 진행됩니다.
--------------------------------------------
그래서 메인함수에서
fac(4)하여
함수를 호출하게 되면
이런식으로
재귀가 진행됩니다.
--------------------------------------------
마지막에 fac(1)은
return 1이 되어
최종적으로
결과는
4*3*2*1이 나오게 됩니다.
--------------------------------------------
실행결과는 다음과 같습니다.
--------------------------------------------