프로그래밍의 기초(의사 코드 트레이스)
다음 함수 isLeap은 서기 y년이 윤년이면 true를 반환한다. and는 or보다 먼저 계산한다. isLeap(y)가 true를 반환하는 y는?
○boolean: isLeap(integer: y)
return y mod 4 = 0 and y mod 100 ≠ 0 or y mod 400 = 0
- A1800
- B1900
- C2000
정답과 해설 보기
정답: C. 2000
and가 or보다 우선하므로, 조건은 (y mod 4 = 0 and y mod 100 ≠ 0) or y mod 400 = 0과 같은 의미입니다. 4로 나누어떨어지고 100으로 나누어떨어지지 않는 해이거나, 400으로 나누어떨어지는 해가 윤년이 됩니다. 1800과 1900은 100으로 나누어떨어지고 400으로는 나누어떨어지지 않으므로 false입니다. 2000은 400으로 나누어떨어지므로 true가 됩니다.