책 내용 질문하기
질문이요 !
도서
[2013] 정보처리기사 실기
페이지
41
조회수
65
작성일
2014-06-20
작성자
첨부파일

p41쪽 문제에서 초기화를 i=0.j=0,k=0 으로 되어 있는데

앞선 p40에서 처럼 i,j,k를 모두 1로 초기화해서 풀어도 맞는 답인가요?

저는 그렇게 했는데 틀린거 아니죠?

#include

void main(){
int i=1,j=1,k=1;
while(1){
i=i+1;
j=j+i;
k=k+j;
printf("+%d",j);
if(!(i<20)){
printf("=%d\n",k);
break;
}
}
}
결과값 k는 똑같던데 초기화 다 0으로하나 1로하나 만일 시험에서도 이렇게 답이 2개인 경우가 있나요??
답변
2014-06-20 09:29:52

안녕하세요.

초기값은 순서도의 형태에 따라 달라지는 것으로 무조건 고정된 것은 아닙니다.

41쪽의 알고리즘은 이 알고리즘은 20번째 항까지의 합계를 구하는 것으로 실질적인 반복문의 시작이 첫항을 구하는 것부터 시작됩니다. 그래서 초기값을 0으로 지정한 후 종료 기준을 i<20으로 한 것입니다.

만일 초기값을 1로 지정하여 첫항을 구한 것으로 처리한 후 작업을 진행한다면 마지막 종료 기준을 i<19로 해야 합니다.

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

"
  • *
    2014-06-20 09:29:52

    안녕하세요.

    초기값은 순서도의 형태에 따라 달라지는 것으로 무조건 고정된 것은 아닙니다.

    41쪽의 알고리즘은 이 알고리즘은 20번째 항까지의 합계를 구하는 것으로 실질적인 반복문의 시작이 첫항을 구하는 것부터 시작됩니다. 그래서 초기값을 0으로 지정한 후 종료 기준을 i<20으로 한 것입니다.

    만일 초기값을 1로 지정하여 첫항을 구한 것으로 처리한 후 작업을 진행한다면 마지막 종료 기준을 i<19로 해야 합니다.

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

    "
  • *
    2014-06-20 09:51:36

    답변 잘 봤는데요~

    i<19까지 하면 안되는 이유가

    저는 i=1 로 초기화했어요 그 이유는 첫 증가값i가 2부터 되야하기 때문이에요

    그래서 i<20까지 해야 총 20항이 되구요..

    40페이지에는 i=0부터 했기 때문에 19까지 하면 20개지만

    41페이지 문제는 처음 증가가 2씩 증가이기 때문에 i=1부터 20까지로 범위 잡은거구요

    i j k i<20

    1 1 1 y

    2 3 4 y

    3 6 10 y

    4 10 20 y

    5 15 35 y

    6 21 56 y

    7 28 84 y

    8 36 120 y

    9 45 165 y

    10 55 y

    11 66 y

    12 78 y

    13 91 y

    14 105 y

    15 120 y

    16 136 y

    17 153 y

    18 171 y

    19 190 y

    20 210 n

    맞죠? i<20

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