首页 > 代码库 > HDOJ 1076

HDOJ 1076

An Easy Task

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15396    Accepted Submission(s): 9830


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
32005 251855 122004 10000
 

 

Sample Output
2108 1904 43236

 

 

 

代码如下:

 1 #include <iostream> 2 using namespace std; 3  4 bool is_leapyear(int n) 5 { 6     if((n % 4 == 0) && (n % 100 != 0)) 7         return true; 8     else if(n % 400 == 0) 9         return true;10     else if((n % 3200 == 0) && (n % 172800 == 0))11         return true;12     else 13         return false;14 }15 16 int main()17 {18     int T,i,start,num;19     cin>>T;20     while(T--)21     {22         cin>>start>>num;23         if(is_leapyear(start) == true)24             i = 1;25         else 26             i = 0;27         start++;28         while(i < num)29         {30             if(is_leapyear(start) == true)31                 i++;32             start++;33         }34         cout<<start-1<<endl;35     }36     return 0;37 }

 

HDOJ 1076