책 내용 질문하기
4-1 문제
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
164
조회수
49
작성일
2017-06-16
작성자
탈퇴*원
첨부파일
k가 홀수인지 짝수인지 판별할 값이 저장되는 변수라면 k의 값은 짝수나 홀수 둘중 하나로만 이루어져야 판별할수 잇다고 생각합니다.
하지만 코드를 보았을때 k의 값은 1,2,3,4.....로 이루어져있어 if(i==j)로 두었을때 j는 항상 ture가 됩니다.
그러므로 k를 사용하지 않고 1.답을 적으면 g<0이라고 생각합니다
답변
2017-06-19 10:44:43
안녕하세요.
k는 do문 안의 맨 처음 처리에서
k = j / 2 * 2; 에 의해
j가 1일 때 k는 0이 됩니다.
j가 2일 때 k는 2가 됩니다.
j가 3일 때 k는 2가 됩니다.
j가 4일 때 k는 4가 됩니다.
이와 같이 짝수일 때는 j와 k의 값이 같지만
홀수일 때는 j와 k가 다릅니다.
이를 이용하여
k와 j가 같은 경우에는 짝수이므로 even에 g의 값을 저장하고
k와 j가 다른 경우에는 홀수이므로 odd에 g의 값을 저장하도록 처리하는 것입니다.
g<0를 수행해도 결과가 동일하게 산출된다고 해도
k를 산출한 후 사용을 하지 않게 되므로 k를 이용한 답안이 가장 효율적인 답안이라 할 수 있습니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-19 10:44:43
안녕하세요.
k는 do문 안의 맨 처음 처리에서
k = j / 2 * 2; 에 의해
j가 1일 때 k는 0이 됩니다.
j가 2일 때 k는 2가 됩니다.
j가 3일 때 k는 2가 됩니다.
j가 4일 때 k는 4가 됩니다.
이와 같이 짝수일 때는 j와 k의 값이 같지만
홀수일 때는 j와 k가 다릅니다.
이를 이용하여
k와 j가 같은 경우에는 짝수이므로 even에 g의 값을 저장하고
k와 j가 다른 경우에는 홀수이므로 odd에 g의 값을 저장하도록 처리하는 것입니다.
g<0를 수행해도 결과가 동일하게 산출된다고 해도
k를 산출한 후 사용을 하지 않게 되므로 k를 이용한 답안이 가장 효율적인 답안이라 할 수 있습니다.
오늘도 즐거운 하루 되세요.