책 내용 질문하기
101페이지 문제 5번 질문입니다
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
101
조회수
388
작성일
2019-09-11
작성자
탈퇴*원
첨부파일
입력값이 5 이니까 recursive(5) 가 실행되고 재귀함수의 형태니까 출력값이 2 5 11 23 47 까지 출력되는것은 이해되는데 95는 왜 출력되는지 모르겠습니다 95가 출력되려면 recursive(6) 이 되야하는거 아닌가요??
답변
2019-09-16 10:34:36

안녕하세요 길벗수험서 운영팀입니다.

 

각 값의 반환점과 출력 위치를 다시 한 번 파악해보세요.

 

recursive(5)일 때

2*recursive(4)+1 이 수행됩니다.

 

recursive(4)일 때

2*recursive(3)+1 이 수행됩니다.

 

recursive(3)일 때

2*recursive(2)+1 이 수행됩니다.

 

recursive(2)일 때

2*recursive(1)+1 이 수행됩니다.

 

recursive(1)일 때

2*2+1 이 수행되고, 5를 출력합니다.

 

recursive(2)로 돌아와

2*5+1 이 수행되고, 11이 출력됩니다.

 

recursive(3)으로 돌아와

2*11+1 이 수행되고, 23이 출력됩니다.

 

recursive(4)로 돌아와

2*23+1 이 수행되고, 47이 출력됩니다.

 

recursive(5)로 돌아와

2*47+1 이 수행되고, 95가 출력되며 main()함수로 돌아갑니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-09-16 10:34:36

    안녕하세요 길벗수험서 운영팀입니다.

     

    각 값의 반환점과 출력 위치를 다시 한 번 파악해보세요.

     

    recursive(5)일 때

    2*recursive(4)+1 이 수행됩니다.

     

    recursive(4)일 때

    2*recursive(3)+1 이 수행됩니다.

     

    recursive(3)일 때

    2*recursive(2)+1 이 수행됩니다.

     

    recursive(2)일 때

    2*recursive(1)+1 이 수행됩니다.

     

    recursive(1)일 때

    2*2+1 이 수행되고, 5를 출력합니다.

     

    recursive(2)로 돌아와

    2*5+1 이 수행되고, 11이 출력됩니다.

     

    recursive(3)으로 돌아와

    2*11+1 이 수행되고, 23이 출력됩니다.

     

    recursive(4)로 돌아와

    2*23+1 이 수행되고, 47이 출력됩니다.

     

    recursive(5)로 돌아와

    2*47+1 이 수행되고, 95가 출력되며 main()함수로 돌아갑니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.