문제 2. 파보나치수열을 구현한 것
에서 전 답이 20인줄 알았는데 12라고 적혀있네요
답안지를 봤는데 아무리 다시 풀어봐도 여전히 20이 나오길래
혹시나 해서 직접 이클립스로 코딩을 해봤더니
실제로 20이 나왔습니다. for문이 한번 돌때마다 sum을 출력했을 때에도
4
7
12
20
으로 나왔습니다.
이 부분에 대해 어떻게 생각하시는지 궁금합니다.
안녕하세요 길벗수험서 운영팀입니다.
코드에서 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로 적혀 있었습니다.
혹시 시점을 다르게 표현하신 건가요?
아무리 봐도 잘 이해가 가질 않습니다.
저는 시나공을 믿으며 앞으로도 신뢰로 함께 하고 싶습니다.
좀더 구체적으로 설명해주시면 감사하겠습니다.