프로그래밍기초 제12주 실습과제

       

재귀(recursion)

       


  • 아래 문제에 대한 답을 워드프로세서(한글이나 워드) 문서로 작성하여 제출하시오. 종이에 답을 적은 후 사진을 찍어 워드프로세서 문서에 붙여 넣어도 좋습니다.
  • 제출방법 : 작성한 문서를 ‘학번_이름_12주차.doc’ (또는 ‘학번_이름_12주차.hwp’)라는 이름으로 저장하여 이루리 과제 게시판에 업로드하세요.

       

P1

재귀함수를 구성하는 두 부분이 무엇인지 적으시오.

       

P2

재귀가 반복에 비해 비용이 큰 이유를 간단히 적으시오.

       

P3

재귀를 사용하는 경우 이득이 무엇인지 간단히 적으시오.

       

P4

아래에 거듭제곱을 계산하는 재귀함수 raise가 있습니다.

img

다음은 raise(3, 4)를 호출할 때의 실행과정을 추적한 표입니다.

   

img

   

위 표에서 파란 부분 중 일부에 내용을 채워 넣어 표를 완성하시오.

       

P5

아래 코드를 실행하면 다음과 같은 출력이 나옵니다.

img

   

출력: img

   

fun(x, y) 함수는 재귀함수입니다. 재귀함수 fun(x, y)를 재귀가 포함되지 않는 x와 y의 간단한 함수로 적으시오. (가령, fun(x, y) = 2x + y 와 같은 모양으로 적으시오.) 파라미터가 x, y라고 하고 추적을 해 보면 결과식을 도출해 낼 수 있습니다.

       

P6

강의자료 12주_재귀에 있는 하노이탑 프로그램의 재귀함수 move(3, 1, 3, 2)의 추적표에는 파란색 빈 칸이 있습니다. 빈칸을 채우세요.

img

       

P7

아래 그림의 fun2는 무엇을 하는 함수인지 설명하시오.

img

       

끝.