재귀(Recursion) 함수

 안녕하세요. 알렉스 입니다. 이번에는 재귀함수에 대해서 글을 작성할려고 합니다. 재귀함수는 거의 대부분의 프로그래밍 언어에서 사용된다고 볼수 있는 함수입니다.




재귀함수를 만들기위해 중요한 사실 2가지가 있습니다. 먼저 문제를 최대한 작게 만듭니다. 이는 Return에서 재귀하기위해서 중요합니다. 그리고 언제 그만둘지도 조건을 정해야 합니다. 안그러면 함수->재귀->재귀 ***** PC고장날때까지 계속 수행합니다.






 위사진은 팩토리얼(factorial)의 위치를 입력(num값)하면 팩터리얼의 값을 출력하는 순서도와 코드 입니다. 사용자가 3을 입력하면 0,1,1,2 순서로 최종 2가 출력됩니다.








 1 : 초기값 설정(num)
 2 : 재귀조건확인(num>1)
 3 : 재귀 시작
 4 : 재귀 종료 처리
 5 : 리턴(Return)
 6 : 프로그램 종료

 위 재귀함수의 3번을 보면 단순히 재귀를 반복하는 것이 아니라 num > 1이상이면 return부분에서 2개의 재귀함수로 나누는 것을 확인할수 있습니다. 




 3번에서 재귀함수가 나눠지고 Base조건에 도달하면 값을 Return합니다. 이때 거슬러 올라가서 처음 재귀함수가 이루어졌던 곳에서 모든값들이 결합하고 최종 값을 리턴합니다.




 만약 Base조건을 제대로 만들지 않는다면 위의 사진에서 각 분기점마다 Base 지점이 없고 뿌리처럼 무한정 증식하게 될것 입니다.





댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)