2020. 4. 26. 01:52ㆍ잡다한 게시물/Q&A
저도 이것 때문에 고생좀 했습니다.. 하하
우선 답변드리기 전에 재귀 호출에 관한 영상을 첨부하겠습니다.
https://dojang.io/mod/page/view.php?id=585
영상을 보시면
한개의 'return 재귀함수() + n'의 재귀함수는
하나의 스택으로 묶여지게 됩니다.
책에 설명된
return '재귀함수() + 재귀함수()' 는
한번에 return이 될 때마다 2개의 스택으로 묶여지게 되는것이죠.
스택의 개념은 찾아보시는게 좋아요! 프로그래밍 공부를 시작하시게 되면
언제든지 언급되는 단어입니다.
간단히 설명드리면
스택은 컴퓨터에 저장되는 공간을 의미합니다.
위에서 부터 차곡차곡 쌓이게 되죠.
자 이 스택을 머리로 그리면 어려우니
생성되는 순서와 동작을 그림으로 표현해 드릴께요.
우선 제가 실행했던 코드입니다.
피보나치 변수가 동작할 때마다 출력을 해주기로 했어요.
* Debug.Log() 는 WriteLine() 이랑 같습니다!
Fibonacci(3) 으로 동작을 시켜보겠습니다.
코드를 실행해서 나온 출력물입니다.
이걸 그림으로 표현을 해볼꼐요.
주저리 주저리 썼는데.. 이해가 되셨을까요..
결국 '재귀 함수'는 자기 자신을 계속해서 실행하게 되므로
if ( n < 2 ) 구문에서 중지가 됩니다. 결국 마지막은 0 또는 1 이라는 수가 나오겠죠.
이 수를 계속해서 더하고 올리고 더하고 올리고를 반복하는 순서입니다.
이해가 되셨으면 좋겠네요!
혹시 이해한가시는건 여기에 댓글 달아주세요.