책 내용 질문하기
값 계산이 이해가 가지 않아서 다시 질문드립니다.
도서
2017 시나공 정보처리기능사 실기
페이지
35
조회수
160
작성일
2017-03-04
작성자
첨부파일

안녕하세요. 35 페이지를 풀어보고 있는데, 이해가 잘 가지 않아 이렇게 질문드립니다.

i J INT(1/2) i/2 INT(i/2)=i/2 i>99

0 0 0 0.5 NO NO

1 -0.5 1 1 yes NO

이렇게 되어있는데, 왜 0.5로 나뉘나요?

0이라서 음수로써 -0.5가 되는게 아닌가요?

그리고,

i J INT(1/2) i/2 INT(i/2)=i/2 i>99

0.1666667 1 1 1.5 NO NO

이렇게 되어있는데, 왜 0.1666667인가요?

-0.5를 빼거나 더해봐도 저렇게 값이 안나오는데,

혹시 제가 잘못 계산한건가요?

답변
2017-03-06 10:15:37

안녕하세요.

i는 0, J는 0을 가지고 시작합니다.

i가 1 증가하여 i는 1이 됩니다.

INT(i/2)는 0이고 i/2는 0.5입니다.

그래서 NO가 되어

J = J - (i / (i + 1))을 계산합니다.

현재 J는 0이고 i는 1이므로

J = 0 - (1 / 2)가 되어 J에는 -0.5가 기억됩니다.

그런 후 다시 처리를 위해 반복하면

i는 1 증가하여 i는 2가 됩니다.

INT(i/2)는 1이고 i/2도 1입니다.

그래서 YES가 되어

J = J + (i / (i + 1))

현재 J는 -0.5이고 i는 2이므로

J = (-0.5) + (2/3) = 0

J = (-0.5) + 0.66666...... 소수점 일정 영역에서 반올림하여 0.66666667로 처리

J = (-0.5) + 0.6666667

J에는 0.1666667이 기억됩니다.

위 과정을 i가 99일 때까지 반복합니다.

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

  • *
    2017-03-06 10:15:37

    안녕하세요.

    i는 0, J는 0을 가지고 시작합니다.

    i가 1 증가하여 i는 1이 됩니다.

    INT(i/2)는 0이고 i/2는 0.5입니다.

    그래서 NO가 되어

    J = J - (i / (i + 1))을 계산합니다.

    현재 J는 0이고 i는 1이므로

    J = 0 - (1 / 2)가 되어 J에는 -0.5가 기억됩니다.

    그런 후 다시 처리를 위해 반복하면

    i는 1 증가하여 i는 2가 됩니다.

    INT(i/2)는 1이고 i/2도 1입니다.

    그래서 YES가 되어

    J = J + (i / (i + 1))

    현재 J는 -0.5이고 i는 2이므로

    J = (-0.5) + (2/3) = 0

    J = (-0.5) + 0.66666...... 소수점 일정 영역에서 반올림하여 0.66666667로 처리

    J = (-0.5) + 0.6666667

    J에는 0.1666667이 기억됩니다.

    위 과정을 i가 99일 때까지 반복합니다.

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

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