컴퓨터는 없는 데 사람에게 만 있는 능력은 ? -- 직관
"분할정복"은 나폴레옹의 전쟁 수행 전략을 컴퓨터에서 적용한 것으로 재귀함수라는 방법으로 구현할 수 있다
재귀호출이란, 어떤 함수가 함수 자기 자신을 호출하는 방식으로 문제를 풀어나가는 알고리즘
코드가 직관적이고 이해하기 쉬운 장점이 있으며 사용 메모리 양이 크다는 단점이 있음
퀵소트, 피보나찌 수열 등의 해결을 위한 알고리즘 작성에 재귀함수가 사용됨
생각하기
-- 피보나찌 수열의 프로그램 코드를 이해한다.
-- 코드를 이해하기 못하는 경우 c 프로그래밍 언어의 함수 부분을 복습한다
생각하기
-- 두수의 GCD를 구하는 2개의 프로그램을 이해한다
-- 반복문 vs. 재귀호출
코드작성하기
-- 이항계수는 "n개의 서로 다른 물건 중에서 순서 없이 k개를 뽑는 조합" 임
-- 이항계수를 재귀함수를 사용하여 프로그램 작성하기
코드작성하기
-- 재귀함수에서 재귀호출의 횟수를 얻기위해 static 변수를 사용할수 있다
-- 피보나찌 수열의 재귀호출의 호출횟수를 구하기 위한 코드를 추가한다
REF :