책 내용 질문하기
정보처리기사 실기 95페이지 4번문제
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
95
조회수
105
작성일
2018-05-08
작성자
탈퇴*원
첨부파일
해설을 보고도 이해가 가질 않아서 여쭈어봅니다 토막강의에서 팩토리얼로 재귀함수로 푸는 걸 봤을 땐 이해가 갔는데 문제가 바뀌어버려서 그런지 해설을 봐도 모르겠습니다
답변
2018-05-09 09:18:31

안녕하세요.

재귀함수는 함수 내에서 자신을 다시 호출하는 것으로

95쪽 문제4번은 재귀함수가 아니라 단순히 사용자 정의 함수를 호출하고 반환하는 과정입니다.

main 함수에서 시작합니다.

result = res200(); 에 의해 res200 함수를 호출합니다.

res200 함수로 가서

return 200 + res30();에 의해 200에 res30() 함수를 호출하여 반환받은 값을 더해서 반환합니다.

res30 함수를 호출합니다.

res30 함수로 가서

return 30 + res10();에 의해 30에 res10() 함수를 호출하여 반환받은 값을 더해서 반환합니다.

res10 함수를 호출합니다.

res10 함수로 가서

return 4;에 의해 4를 반환합니다.

res10을 호출했던 res30의 함수로 4를 가지고 반환합니다.

return 30 + 4; res10에서 4를 반환받았으므로 res30 함수에서는 34를 반환합니다.

return 200 + 34; res30에서 34를 반환받았으므로 res200 함수에서는 234를 반환합니다.

result = 234; res200에서 234를 반환받았으므로 234를 result에 저장합니다.

234가 저장된 result의 값을 정수로 출력합니다.

오늘도 즐거운 하루 되세요.

  • *
    2018-05-09 09:18:31

    안녕하세요.

    재귀함수는 함수 내에서 자신을 다시 호출하는 것으로

    95쪽 문제4번은 재귀함수가 아니라 단순히 사용자 정의 함수를 호출하고 반환하는 과정입니다.

    main 함수에서 시작합니다.

    result = res200(); 에 의해 res200 함수를 호출합니다.

    res200 함수로 가서

    return 200 + res30();에 의해 200에 res30() 함수를 호출하여 반환받은 값을 더해서 반환합니다.

    res30 함수를 호출합니다.

    res30 함수로 가서

    return 30 + res10();에 의해 30에 res10() 함수를 호출하여 반환받은 값을 더해서 반환합니다.

    res10 함수를 호출합니다.

    res10 함수로 가서

    return 4;에 의해 4를 반환합니다.

    res10을 호출했던 res30의 함수로 4를 가지고 반환합니다.

    return 30 + 4; res10에서 4를 반환받았으므로 res30 함수에서는 34를 반환합니다.

    return 200 + 34; res30에서 34를 반환받았으므로 res200 함수에서는 234를 반환합니다.

    result = 234; res200에서 234를 반환받았으므로 234를 result에 저장합니다.

    234가 저장된 result의 값을 정수로 출력합니다.

    오늘도 즐거운 하루 되세요.

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