入力された整数がグレゴリオ暦でうるう年であるか判定するプログラムを書いてください。
閏年判定の条件
- 西暦が4で割り切れる年は閏年。
- ただし、100で割り切れる年は閏年ではない。
- ただし、400で割り切れる年は閏年。
- 入力される値
- 1行目には、入力される行数Tが入ります。
1回のテストケースは、1行に1つずつ整数Nが入っている複数行の標準入力(stdin)による入力になります。
標準入力からの値取得方法はこちらをご確認ください
- 期待する出力
- 標準出力(stdout)で、入力された行数分の判定結果を出力します。
うるう年だった場合[N is a leap year]
うるう年でない場合[N is not a leap year] と、出力。
- 条件
- T、N は整数
N>= 1
- 入力例
- 4
- 1000
- 1992
- 2000
- 2001
- 出力例
- 1000 is not a leap year
- 1992 is a leap year
- 2000 is a leap year
- 2001 is not a leap year
윤년의 조건으로는
4로 나눈 나머지가 0인 해로써, 100의 배수인 해는 제외하며, 400의 배수인 해는 포함
4로 나눈 나머지가 0인 해 (0 == year%4)
100의 배수인 해는 제외 (0 != year%100)
400의 배수인 해는 포함 (0 == year%400)
package 연습;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class LearYear {
public static void main(String[] args) throws Exception {
// main()메소드 내에서 사용하는 I/O와 관련된 예외를 통과시키기 위해 throws를 이용
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("입력할 횟수: ");
String line = br.readLine();
int n = Integer.parseInt(line);
for(int i = 0; i < n; i++) {
System.out.print((i+1) + "번째 년도: ");
String line2 = br.readLine();
int year = Integer.parseInt(line2);
if(0 == (year%4) && 0 != (year%100) || 0 == (year%400)) {
System.out.println(year + " is a leap year");
}
else System.out.println(year + " is not a leap year");
}
}
}
'paiza로 자바 연습' 카테고리의 다른 글
1행의 문자열로 숫자 2개를 입력받아 그 합을 출력 (0) | 2016.01.18 |
---|---|
입력받은 영어 이름 각 앞글자는 대문자로 바꿔 이니셜 만들기 (0) | 2016.01.18 |
내가 가진 책들과 중고서점 책들을 비교하여 사야할 책들을 출력하는 문제 (0) | 2016.01.11 |
R과 W를 n개씩 번갈아 반복시키는 m개의 길이를 가진 줄무늬를 출력하는 문제 (0) | 2016.01.11 |
1부터 n까지의 곱을 출력하는 문제 (계승, 팩토리얼) (0) | 2016.01.11 |