책 내용 질문하기
문제6번 질문입니다
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
96
조회수
89
작성일
2018-09-08
작성자
탈퇴*원
첨부파일

n이 5인데 1보다 작울때까지 else룰 타잖아요

그러면 i = 2 * recursive(n - 1) +1 이 5~ 1까지 계산되는거니까

47이 끝 아닌가요..?

왜 95도 출력되는 지 모르겠습니다

답변
2018-09-10 16:05:12

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

recursive(0)의 값은 2 - if (n<1) return 2 이므로

recursive(1)의 값은 5 - (2 * recursive(0)) + 1 = 5

recursive(2)의 값은 11 - (2 * recursive(1)) + 1 = 11

recursive(3)의 값은 23 - (2 * recursive(2)) + 1 = 23

recursive(4)의 값은 47 - (2 * recursive(3)) + 1 = 47

recursive(5)의 값은 95 - (2 * recursive(4)) + 1 = 95

i = (2 * recursive(4)) + 1; 과정을 생략하신 것 같습니다.

교재 484페이지의 해설부분을 참고하여 다시 한 번 디버깅 해보세요. recursive(4)로 반환받은 47을 다시 한 번 연산한 뒤 출력해야 합니다.

행복한 하루되세요.^^

  • *
    2018-09-10 16:05:12

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

    recursive(0)의 값은 2 - if (n<1) return 2 이므로

    recursive(1)의 값은 5 - (2 * recursive(0)) + 1 = 5

    recursive(2)의 값은 11 - (2 * recursive(1)) + 1 = 11

    recursive(3)의 값은 23 - (2 * recursive(2)) + 1 = 23

    recursive(4)의 값은 47 - (2 * recursive(3)) + 1 = 47

    recursive(5)의 값은 95 - (2 * recursive(4)) + 1 = 95

    i = (2 * recursive(4)) + 1; 과정을 생략하신 것 같습니다.

    교재 484페이지의 해설부분을 참고하여 다시 한 번 디버깅 해보세요. recursive(4)로 반환받은 47을 다시 한 번 연산한 뒤 출력해야 합니다.

    행복한 하루되세요.^^

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