책 내용 질문하기
정보처리기사 실기 2018년 3회차 기출에서 질문입니다
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
0
조회수
327
작성일
2019-04-09
작성자
탈퇴*원
첨부파일

문제 2. 파보나치수열을 구현한 것

 

에서 전 답이 20인줄 알았는데 12라고 적혀있네요

 

답안지를 봤는데 아무리 다시 풀어봐도 여전히 20이 나오길래

 

혹시나 해서 직접 이클립스로 코딩을 해봤더니

 

실제로 20이 나왔습니다. for문이 한번 돌때마다 sum을 출력했을 때에도

 

4

7

12

20

으로 나왔습니다.

 

이 부분에 대해 어떻게 생각하시는지 궁금합니다.

 

답변
2019-04-09 13:36:19

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

 

코드에서 for문의 최대값이 잘못되셨습니다.

수열의 5번째 값을 구해야 하므로, 20 전의 값 12가 맞습니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-04-09 13:36:19

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

     

    코드에서 for문의 최대값이 잘못되셨습니다.

    수열의 5번째 값을 구해야 하므로, 20 전의 값 12가 맞습니다.

     

    행복한 하루되세요 :)

  • 관리자
    2019-04-10 10:39:14

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

     

    음.. 먼저 말씀드릴 것은 해당 문제는 기출문제이며, 산업인력공단에서 출제된 문제입니다.

    이 문제에서는 해당 코드의 정확한 결과값을 도출하는 문제이며, 피보나치 수열 값의 n번째(혹은 5번째)를 출력하라는 어구는 제시되지 않았습니다.

     

    해당 코드를 정확히 옮긴 후 실행해보시기 바랍니다.

     

    회원님이 작성하신 코드의 for문은

    for(int i=3; i<=6; i++) 이며

    문제의 코드는

    for(int i=3; i<=5; i++(

    입니다.

     

    당연히 for문이 6에서 한 번 더 회전하기 때문에 값이 다르게 출력될 수 밖에 없습니다.

     

    디버깅표의 경우 초기값이 주어진 상태에서 시작합니다.

    sum이 2에서 시작한 것은

    sum = a+b; 로 주어진 초기값을 반영한 것이죠.

    a=b=1; 을 반영하여, 변수 a, b가 1로 시작한 것과 마찬가지입니다.

     

    행복한 하루되세요 :)

  • *
    2019-04-09 23:36:50

    5번째라면 i<=6가 아니라 i<6가 맞는 표현이라 생각합니다만 이부분에 대해

     

    어떻게 생각하시는지 궁금합니다.

     

    저기선 i<=6 으로  i=6일때도 포문이 돌며 그 때에도 sum에 c값이 구해지고 있습니다.

     

    무엇보다도 문제에 나와 있는 걸 그대로 코딩했을 때 결과값이 20이었고

     

    혹시나 싶어 각 for문이 돌때마다 sum의 출력값도 답지와는 달랐습니다.

     

    sum은 처음에 for문에 진입하기 전에 이미 2값이었는데

     

    답지에선 2+2(i=3이 한번 돌았을 때 최종적으로 sum에 누적된 값)이 아닌 2로 적혀 있었습니다.

     

    혹시 시점을 다르게 표현하신 건가요?

     

    아무리 봐도 잘 이해가 가질 않습니다.

     

    저는 시나공을 믿으며 앞으로도 신뢰로 함께 하고 싶습니다.

     

    좀더 구체적으로 설명해주시면 감사하겠습니다. 

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