C_프로그래밍

[C 프로그래밍] 29장. 재귀함수

팔공산호랑이 2020. 4. 5. 23:25

--------------------------------------------

재귀 함수란

다시 돌아오는 함수 라는 뜻이며

자기 자신이

자기 자신을 다시 호출하는 함수라고 할 수 있습니다.

--------------------------------------------

예제를 살펴보겠습니다.

--------------------------------------------

 

우선

함수 프로토 타입

함수 호출

함수의 정의를

구분해줍니다.

--------------------------------------------

 

main함수에서

recursive 함수를 호출하면

내부에서 문장을 출력하고

recursive함수를 또 호출합니다.

--------------------------------------------

그러면

이런식으로

자기 자신과 똑같은 함수가 메모리에 복사되어

함수가 계속 실행되게 됩니다.

--------------------------------------------

실행결과는 다음과 같습니다.

--------------------------------------------

다음 예제는

재귀함수를 이용하여

팩토리얼 값을 구하는 함수를 만드는 예제입니다.

--------------------------------------------

재귀함수 형태로 구현된

팩토리얼 함수는 다음과 같습니다.

종료조건은 n1이되면

return 1하여 함수가 1로 바뀝니다.

나머지는

입력값이 하나씩 줄어들면서 재귀가 진행됩니다.

--------------------------------------------

그래서 메인함수에서

fac(4)하여

함수를 호출하게 되면

이런식으로

재귀가 진행됩니다.

--------------------------------------------

마지막에 fac(1)

return 1이 되어

최종적으로

결과는

4*3*2*1이 나오게 됩니다.

--------------------------------------------

 

실행결과는 다음과 같습니다.

--------------------------------------------