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.
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 int main() 7 { 8 int N,n,m; 9 scanf("%d",&N); 10 while(N--) 11 { 12 scanf("%d%d",&n,&m); 13 if((n%100==0&&n%400==0)||(n%100!=0&&n%4==0)) 14 { 15 m--; 16 } 17 else 18 { 19 while(n--) 20 { 21 if((n%100==0&&n%400==0)||(n%100!=0&&n%4==0)) 22 break; 23 } 24 } 25 for(int i=n/100+1;i<=(n+4*m)/100;i++) 26 { 27 if(i%4!=0) 28 { 29 m++; 30 } 31 } 32 printf("%d\n",n+4*m); 33 } 34 }
时间: 2025-01-12 09:31:13