주어진 연도가 윤년인지를 판단하고자 한다. 연도가 400으로 나누어 떨… | [계리직 컴퓨터일반] 08년 1회차 기출문제 상세 페이지
1[계리직 컴퓨터일반] 08년 1회차
주어진 연도가 윤년인지를 판단하고자 한다. 연도가 400으로 나누어 떨어지거나, 4로 나누어떨어지면서 100으로 나누어 떨어지지 않은면 윤년이다. C언어에서 윤년을 계산하는 조건식으로 알맞은 것은?
1
연도%4!=0 &&연도%100==0 || 연도%400!=0
2
연도%4==0 &&연도%100!=0 || 연도%400==0
3
연도%4!=0 &&연도%100==0 &&연도%400!=0
4
연도%4==0 &&연도%100!=0 &&연도%400==0
해설
윤년 조건은 (4의 배수이면서 100의 배수가 아님) 또는 400의 배수이므로
연도%4==0 && 연도%100!=0 || 연도%400==0이 알맞다.C언어에서 && 가 || 보다 우선순위가 높아 앞의 두 조건이 먼저 묶인 뒤 400의 배수 조건과 OR 로 결합된다.
연도%4!=0 && 연도%100==0 || 연도%400!=0: 앞의 두 조건은 동시에 성립할 수 없어 사실상 400의 배수가 아닌 해를 고르므로 2001년 같은 평년까지 참이 되어 틀린다.연도%4!=0 && 연도%100==0 && 연도%400!=0: 4의 배수가 아니면서 100의 배수인 수는 없으므로 항상 거짓이다.연도%4==0 && 연도%100!=0 && 연도%400==0: 400의 배수이면서 100의 배수가 아니어야 하므로 성립하는 연도가 없어 틀린다.
오류나 개정된 내용이 보이면 알려주세요