2022. 11. 24. 13:01ㆍ개인공부/C++
재귀 함수
함수안에서 자기 자신을 호출
가독성 (어느정도 c++에 익숙해지면) , 다른 반복문에 비해서 구현이 용이하다
편리하긴 하지만 스택을 쌓아 가기때문에 유의해서 사용해야한다.
반드시 탈출할 수 있는 조건이 필요하다
탈출하지 못하면 스택이 쌓이다가 스택메모리 한계에 도달하면
Stack Overflow 발생
소프트웨어에서 스택 오버플로는 스택 포이턴가 스택의 경계를 넘어설 때 일어난다. 호출 스택은 제한된 양의 주소공간을 이루며 대개 프로그램 시작시 결정된다.
재귀함수 팩토리얼
재귀함수를 이용하여 팩토리얼을 구현하였다.
피보나치 수열
피보나치 수열 몇번째 자리 값을 구하는 함수를 만들었다
이 과정에서 1,2번째는 1값으로 고정이고 그후 3번째부터는 이전 2개의 숫자의 합이므로
pre1 +pre2 값으로 정의하였다 그리고 pre1값에 먼저 pre2값을 넣어야 오류가 발생하지 않는다.
재귀함수 피보나치 수열
-오류 해결과정 -
처음에는 재귀함수로 피보나치 수열을 제작하였는데 분명 함수를 잘 구현했는데 이상한 값이 나와서 중단점을
이용하여 디버깅하여 확인한 결과 Fibonacci_ Re 를 이용한것이 아닌 위쪽코드의 Factorial_Re 함수를 사용하여
오답으로 계산하고있었다 다시 원래 피보나치 재귀함수를 이용하여 컴파일결과 잘 실행되었다.
-더 알아야할 점-
컴파일 과정에서 재귀함수는 스택을 쌓아나가는 과정이라 피보나치 수열의 값이 커질수록 컴파일 속도가 느려졌는데
더 공부하여 함수의 작동원리를 이해하고 왜 속도가 느려지는지 공부할 예정이다.
'개인공부 > C++' 카테고리의 다른 글
변수 / 분할구현 (0) | 2022.11.25 |
---|---|
배열 , 구조체 (0) | 2022.11.25 |
함수로 Factorial 구현 (0) | 2022.11.23 |
Visual Studio 단축키 (0) | 2022.11.23 |
반복 문 if , while (0) | 2022.11.23 |