杭电1047 An Easy Task – java 解读

最后更新于:2022-04-01 09:48:42

~~~ # An Easy Task Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17866    Accepted Submission(s): 11383 ~~~ Problem Description Ignatius was born in a leap year, so he want to know when he could hold his birthday party. Can you tell him? Given a positive integers Y which indicate the start year, and a positive integer N, your task is to tell the Nth leap year from year Y. Note: if year Y is a leap year, then the 1st leap year is year Y. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains two positive integers Y and N(1<=N<=10000). Output For each test case, you should output the Nth leap year from year Y. Sample Input ~~~ 3 2005 25 1855 12 2004 10000 ~~~ Sample Output ~~~ 2108 1904 43236 Hint We call year Y a leap year only if (Y%4==0 && Y%100!=0) or Y%400==0. 题目大意是:输入一个整数控制输入的数据的组数,以下输入哪一年 第几个闰年,闰年的判断标准是:年数除以4余数为0并且除以100余数不为0,或者年数是400的整数倍,到达第几个闰年的时候输出年数。 ~~~ ~~~ import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); int i = 0, num_year = 0, num_times = 0, count = 0; List<Integer> list = new ArrayList<Integer>(); while(i < num) { count = 0; num_year = scanner.nextInt(); num_times = scanner.nextInt(); while(count < num_times) { if (num_year%4==0 && num_year%100!=0 || num_year%400==0) { count++; } if(count == num_times) { list.add(num_year); } num_year ++; } i++; } for(i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } ~~~
';