본문 바로가기

팩토리얼2

[자료구조, 알고리즘] 재귀호출 - 헷갈리면 모르는것 [특징 및 이해할 때 필요한 개념](1) 재진입 개념이 아닌 복사본 개념 : 스택에 쌓인 함수는 각각의 함수(2) 반복 : 이전의 연산에 기반해서 현재의 것을 연산할 때 사용 : 함수에서 함수를 호출=> 동일 패턴 반복 (3) 문제 -> 논리 세우기 -> 코드화 / 패턴화(함수, 0 - 1 - ---- - n-1 - n - n+1)(4) 메모리(코드) - CPU(연산) : 언어 런타임 별 메모리 할당 구조 살펴보기(5) 함수 호출 관계 - 순서 한번쯤 따져보기=> 호출한 함수가 모두 끝난 후(return) 되돌아와서 실행=> 수학의 함수 개념 : 정의역, 공역, 치역(특정 값을 도출해내기위한 패턴) (6) 성능상 좋지않으나(재귀 두갈래 이상 out of memory 조심) 간결한 코드 [예시](1) 팩토.. 2017. 8. 21.
[자료구조 알고리즘] 재귀 호출 : 논리를 코딩하기 [재귀함수 호출]- S(n) 결과값 도출을 위해 S(n-1)이 필요할 때 재귀 호출을 사용 => 패턴화를 위해 예시 경우의수 2~3가지를 대입해서 실행해보고 패턴화해서 코드로 짜기 123456789101112void Recursive(int num) { if(num 복사본(Recursive) -> 복사본(Recursive) -> 복사본(Recursive) => 원본의 복사본 실행 => 명령문 실행 : 명령문은 CPU로 이동(복사)되어 실행 => 메모리(스택)에 이전 함수(복사본)의 주소가 저장 : 마지막 호출된 복사본이 종료되면 이전 함수(복사본)으로 돌아감 - 재귀 함수 탈출 조건 : 끝남 조건, 무한루프 X => OutOfMemory - 반복문을 간결하게 작성함 : 함수를 스택에 쌓고 연산하는 것보다.. 2017. 7. 31.